У меня есть проблема. Я пытаюсь написать строку с текстом ASCII, например: ‘/ \’. Но всякий раз, когда я это делаю, обратная косая черта искажает код, отменяя кавычку, определяющую его как строку, и, следовательно, портит. Есть ли способ отменить обратную косую черту, чтобы она не отменила цитату? Спасибо, парни!
\
это специальный символ, который говорит: «Следующий символ имеет особое значение».
Так что если вы хотите показать \
ты должен написать … \\
чтобы получить один \
на выходе
Было бы очень полезно показать, что вы пробовали, но это даст точный результат, который вы запрашивали (как показано SO)
echo '\'/\\' . "'\n" ;
‘/ \’
Это также должно дать вам представление о том, как экранирование обратной косой черты работает в различных типах строк.
Отличным решением при написании таких вещей является HEREDOC. Внутри блока heredoc вам не нужно беспокоиться об экранировании чего-либо, это будет просто текст.
Например:
echo <<<TEXT
/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
TEXT;
Есть одна загвоздка. PHP сломается, если вы не выровняете эхо в начале строки, или если TEXT; не выравнивается в начале строки.
Heredoc также может быть назначен переменной, например:
$var = <<<SOME_MORE_TEXT
/|\/|\/|\/|\/|\/|\/|\/|\/|\/|\
SOME_MORE_TEXT;
Наконец, HEREDOC сохраняет табуляции и пробелы. Что также может пригодиться при выполнении ASCII искусства.
Ссылаться на: http://php.net/manual/en/language.types.string.php для дополнительной информации.
Вам нужно выходить из последнего только при использовании одинарных кавычек.
$var = 'backslash\backslash\backslash\\';
// output is:
// backslash\backslash\backslash\