Я использую netbeans, я пытаюсь заменить \
с \\
но он терпит неудачу, он не может избежать символа \\
.
Это не проблема Netbeans, это проблема PHP.
preg_replace('\','\\','text to \ be parsed');
Любые решения?
Используйте 4 обратных слэша и, пожалуйста, не забудьте разделители:
echo echo preg_replace('~\\\\~','\\\\\\\\','text to \\ be parsed');
Демо-версия
Объяснение: Когда PHP разбирает \\\\
он \\\\
\\
два раза, что означает, что он становится \\
, теперь, когда PHP передает его в механизм регулярных выражений, он получит \\
что означает \
.
Попробуйте функцию php chr()
и сообщите preg_replace код char ascii для \
и \\
.
функция chr
таблица кодов ascii
<?php echo chr(52) . "<br>"; // Decimal value echo chr(052) . "<br>"; // Octal value echo chr(0x52) . "<br>"; // Hex value preg_replace(chr(1),chr(2),'text'), ?>
Это работает: (используя str_replace (), а не preg_replace ())
$str = "text to \ be parsed"; $str = str_replace('\\', '\\\\', $str); echo $str;