Удалить все обратные слеши из строки - 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 магические кавычки могут вызывать подобные вещи. Если вы можете добраться до этой статьи, она объяснит проблемы.

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_6630-Magic-Quotes-a-bad-idea-from-day-one.html

HTH, ~ Ray

Другие вопросы по тегам