So the test case string may be:
http://example.com/?u=ben
Or
http://example.com
I'm trying to remove everything after the last occurrence of a '/' but only if it's not part of the 'http://'. Is this possible!?
I have this so far:
$url = substr($url, 0, strpos( $url, '/'));
But does not work, strips off everything after first '/'.
The substr() and strpos() function is used to remove portion of string after certain character.
To remove the last three characters from a string, we can use the substr() function by passing the start and length as arguments.
You can use strstr to do this. Show activity on this post. The explode is in fact a better answer, as the question was about removing the text before the string.
You must use strrpos function not strpos ;-)
substr($url, 0, strrpos( $url, '/'));
You should use the tool that is designed for this type of job, parse_url
url.php
<?php $urls = array('http://example.com/foo?u=ben', 'http://example.com/foo/bar/?u=ben', 'http://example.com/foo/bar/baz?u=ben', 'https://foo.example.com/foo/bar/baz?u=ben', ); function clean_url($url) { $parts = parse_url($url); return $parts['scheme'] . '://' . $parts['host'] . $parts['path']; } foreach ($urls as $url) { echo clean_url($url) . "\n"; }
Example:
·> php url.php http://example.com/foo http://example.com/foo/bar/ http://example.com/foo/bar/baz https://foo.example.com/foo/bar/baz
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With