我从 PHP 手册中摘录了这些句子:
'this is a simple string',
'Arnold once said: "I\'ll be back"',
'You deleted C:\\*.*?',
'You deleted C:\*.*?',
'This will not expand: \n a newline',
'Variables do not $expand $either'
我想使用 PHP 代码来回显它们,就像它们出现的那样,使用转义的单引号(如第二句)和双反斜杠(如第三句)。这是我到目前为止所拥有的:
<?php
$strings = array(
'this is a simple string',
'Arnold once said: "I\'ll be back"',
'You deleted C:\\*.*?',
'You deleted C:\*.*?',
'This will not expand: \n a newline',
'Variables do not $expand $either');
$patterns = array('~\\\'~', '~\\\\~');
$replacements = array('\\\\\'', '\\\\\\\\');
foreach($strings as $string)
{
echo '\'' . preg_replace($patterns, $replacements, $string) . '\'' . '</br>';
}
?>
输出是:
'this is a simple string'
'Arnold once said: "I\\'ll be back"'
'You deleted C:\\*.*?'
'You deleted C:\\*.*?'
'This will not expand: \\n a newline'
'Variables do not $expand $either'
但如果可能的话,我想完全按照我的代码中列出的方式回显这些字符串。我在使用双反斜杠字符 (\) 时遇到问题。我的第二个模式('~\\~')似乎取代了单反斜杠和双反斜杠。我还尝试使用具有相同结果的 addcslashes()。
(我最近在别处问过这个问题,但没有解决方案)
提前致谢。