Reputation: 1012
I'm trying to remove the contents of a variable if it already exists in a string:
$baseurl = "http://mywebsite.ex/";
$b = $baseurl."http://";
$a = $b."http://mywebsite.ex";
if (strpos($a,$b) !== false)
{
echo 'true <br>';
$baseurl = "";
echo $a;
}
But when I test the script I get:
true
http://mywebsite.ex/http://http://mywebsite.ex
I expected the result:
true
http: //mywebsite.ex
Where am I wrong?
Upvotes: 2
Views: 226
Reputation: 2792
I don't know what you are trying to do, but I think you have some logical problems.
Update. OK now I know what you wanted ;), I think @Rizier123: you nailed it.
What you do in you code is:
strpos(): you are asking in this if ( strpos( $a, $b ) !== false )
condition if $b
( http://mywebsite.ex/http:// ) is in $a
( http://mywebsite.ex/http://http://mywebsite.ex )
// this is always true because you concated the string like $a = $b . "http.....
, so $b
is always in $a
Try this and take a look at the output:
$baseurl = "http://mywebsite.ex/";
$b = $baseurl . "http://"; // b looks like http://mywebsite.ex/http://
var_dump( $b );
$a = $b . "http://mywebsite.ex"; // a looks like http://mywebsite.ex/http://http://mywebsite.ex
var_dump( $a);
// strpos: you asking in this condition if $b ( http://mywebsite.ex/http:// ) is in $a ( http://mywebsite.ex/http://http://mywebsite.ex )
// this is always true because you concated the string like $a = $b . "http....., so $b is always in $a
if ( strpos( $a, $b ) !== false ) {
echo 'true <br>';
$baseurl = "";
echo $a;
}
Upvotes: 1
Reputation: 59701
With strpos()
you only detect if $b
occurs somewhere in $a
, but it doesn't remove it. To remove it you can assign the return value of strpos()
to a variable and then cut out $b
from $a
with substr_replace()
, e.g.
if (($position = strpos($a,$b)) !== false) { echo 'true <br>'; $baseurl = ""; $a = substr_replace($a, "", $position, strlen($b)); echo $a; }
With this you will remove the first occurence of $b
in $a
. And if you would want to remove all occurences, just use str_replace()
, e.g.
if (strpos($a,$b) !== false) { echo 'true <br>'; $baseurl = ""; $a = str_replace($b, "", $a); echo $a; }
Upvotes: 3