Замена символа странной ситуации - PullRequest
0 голосов
/ 02 июня 2011
foreach($ret as $object)
{
    $res = $object->...;
    $img_src = $res[0]->src;
    echo $img_src . '<br />';
    echo str_replace("&size=2", "", $img_src) . '<br /><br />';
}

$img_src ~ 'http://site.com/img.jpg&size=2'

И я должен получить ту же ссылку, но без &size=2. Почему не работает моя последняя строка в коде. Показывает тот же URL.

Ответы [ 3 ]

2 голосов
/ 02 июня 2011

Вы абсолютно уверены, что в исходной строке есть какие-нибудь тупые непечатные символы? Попробуйте отладить это:

printf("%s\n", join(':', str_split($img_src)));

И убедитесь, что у вас действительно есть & size = 2 в вашей строке. Если вы видите два последовательных двоеточия, у вас есть что-то вроде \ 0 или какого-то другого персонажа, который портит работы в середине вашей строки.

0 голосов
/ 02 июня 2011

использовать preg_replace:

$c=preg_replace("/&size=2/","",$img_src);

Пример использования

<?php
$sr="http://site.com/img.jpg&size=2";
echo preg_replace("/&size=2/","",$sr);
?>

Это выдаст

http://site.com/img.jpg
0 голосов
/ 02 июня 2011

Кажется, работает на этом конце:

http://site.com/img.jpg&size=2 
http://site.com/img.jpg

от

<?php
$img_src = 'http://site.com/img.jpg&size=2';
echo $img_src.'<br />';
echo str_replace("&size=2", "", $img_src).'<br/><br/>';
?>
...