2013-09-10 3 views
-1

Может кто-нибудь объяснить, как я избежать двойной кавычки "характер в строковой переменной, так что последующая строка только один символ в длинеPHP длина строки addslashes

С addslashes возвращает 2 символов:

$str = '"'; 
var_dump(addslashes($str)); 

строка (2) "\"»

Но если его строковым, его только один символ:

var_dump("\""); 

строка (1) "" "

+0

'var_dump ('\"'); 'с одинарной цитатой – Bora

ответ

1

В строковом литерале косая черта является символом escape. Таким образом, \" означает то же, что и ".

Если вы хотите добавить косую черту в строку литерала, то слэш должны быть экранированы: \\"

Если вы используете addslashes, то он также будет добавить слэш в строку.

Невозможно добавить символ в строку, не увеличивая длину этой строки.

+0

Спасибо Квентин. Так их способ определить, нужна ли $ str косая черта? Вместо того, чтобы без разбора конкатенировать так: " \\ ". $ str – Globalz

+0

@Globalz - зная, для чего вы собираетесь его использовать. – Quentin

+0

Строка, о которой идет речь, генерируется пользователем (выберите оболочку для файла csv). Поэтому я не знаю, будет ли строка специальным символом, который требует косой черты или нормального символа. – Globalz

1

Вы ошибаетесь Код PHP с равными данными.

\" 

это просто строка состоит из 2-х символов

"\"" 

представляет собой PHP код, который оценивается в один " характер, в соответствии с syntax rules

Смежные вопросы