что это за символы ASCII?
У меня есть два символа, которые мне нужно найти и заменить в php-строке.
’
“
Чем-то они отличаются от:
'
"
Кто-нибудь знает, какую функцию я мог бы использовать, чтобы удалить их из строки php?
5 answers
Вот что происходит, когда кто-то отправляет вам электронное письмо в Outlook, так что будьте осторожны, потому что вы полностью пропускаете открывающую пару этих одинарных кавычек и закрывающую пару для двойных кавычек. Но на самом деле вам нужно использовать коды сущностей html.
Почему? Потому что в дикой местности есть намного больше, чем те два кода, которые вы опубликовали выше, на самом деле, вы показали только половину набора кавычек (т. Е. Вы пропустили закрывающую одинарную кавычку и открывающую двойную цитата). Их сотни, вам нужно кодировать их лучше, чем замена строк.
Существует несколько способов управления переводом из кодировки в сущность html.
Http://php.net/manual/en/function.htmlentities.php
Http://piology.org/entities.html
Http://konieczny.be/unicode.html
Есть и другие, но они в основном делают то же самое.
Внутри PHP-скрипта, сохраненного как UTF-8 (чтобы эти символы были правильно представлены), вы можете просто использовать str_replace
, чтобы удалить их.
То, что у вас есть, называется умными кавычками или фигурными кавычками. Есть люди, которые делают подобные вещи. Крис Шифлетт
Проверьте это, я использовал его, и он работает:
Почему бы просто не использовать str_replace
?
$new_str = str_replace(array('’', '“'), '', $str);
Конечно, для этого ваши PHP-скрипты должны быть сохранены в формате UTF-8.
И если это не сработает, потому что эти символы не могут быть правильно написаны с использованием UTF-8, вам придется вернуться к использованию их шестнадцатеричных представлений.
Например:
$new_str = str_replace(array('\xC2\x91', '\xC2\x93'), '', $str);
( Не уверен, что шестнадцатеричные значения, которые я использовал, действительно соответствуют вашим двум специальным кавычкам, хотя)