Удалить все обратные слеши из строки - php - regex
Моя строка
$str = '<img src="\"images/hai.jpg\"" alt="" /> Text <img src="\"images/hai.jpg\"" alt="" />';
Я хочу удалить все \"из строки.
3 ответа
Я думаю, что вы ищете не регулярное выражение, а stripslashes($str)
метод.
РЕДАКТИРОВАТЬ: Из комментариев, я понимаю, что вы будете только заменить \"
ни с чем, вы должны использовать простую str_replace
здесь, как сказал @Gumbo:
$str = ...;
$newStr = str_replace('\"', '', $str);
echo $newStr;
Вы можете использовать регулярные выражения для этого, но библиотека pReg работает не быстро, если вы можете найти вариант str_* или массива, который делает то же самое, я всегда рекомендую использовать это вместо preg_*
С помощью stripslashes($str)
не всегда удалит ВСЕ \
s из строки. Если есть случай, когда \\
существует, он станет одним слешем, а не 0. Чтобы избавиться от них всех, лучше всего использовать str_replace
,
А также, как заявлено ФП, он хочет удалить /"
что нужно будет сделать с помощью str_replace
Это похоже на строку данных, которая прошла через несколько escape-последовательностей. Возможно, вы захотите найти причину обратной косой черты и дублированных кавычек. В PHP магические кавычки могут вызывать подобные вещи. Если вы можете добраться до этой статьи, она объяснит проблемы.
HTH, ~ Ray