<?php
$string = '\n \n \n \n';
$patterns = '/\n/';
$replacements = '/\\n/';
echo preg_replace($patterns, $replacements, $string);
?>
這部分代碼似乎無法正常工作,對此有何建議。它根本不迴應任何事情。我可以讓它與ereg一起工作,但想要轉換爲preg。ereg_replace和preg_replace
<?php
$string = '\n \n \n \n';
$patterns = '/\n/';
$replacements = '/\\n/';
echo preg_replace($patterns, $replacements, $string);
?>
這部分代碼似乎無法正常工作,對此有何建議。它根本不迴應任何事情。我可以讓它與ereg一起工作,但想要轉換爲preg。ereg_replace和preg_replace
許多問題......
你們是不是要打造而成的新行字符的字符串?'\n \n \n \n'
是不是這樣,它不工作。使用"\n \n \n \n"
和閱讀有關字符串here的PHP官方手冊。
您的模式未正確轉義。嘗試'/\\n/'
,無論如何我不確定你的版本不起作用。
您的'/\\n/'
更換的原因是什麼? 請提供輸入字符串和所需輸出的示例。
如果你試圖逃跑字符串將它們保存在數據庫中,你完全在錯誤的道路。谷歌爲php數據庫轉義,並閱讀約mysql_escape_string()
(或同等的,如果你不使用MySQL)。有功能可以做到這一點,而你必須使用它們。你不能依賴(或者沒有理由去做)使用正則表達式的自定義函數。
我試圖逃避用戶輸入,所以如果他們輸入\ n當它在數據庫中更新它不僅\ n而是\\ n。 – mintuz 2012-02-20 17:20:16
@明圖茲好吧,所以你**完全錯誤的方式**。我編輯我的答案,接受它,如果我對你的意圖是正確的。 – 2012-02-20 17:22:48
如果你意味着\n
是一個新的行字符,您可能無法使用單引號('),用雙引號(「)在這裏,而不是
PHP文件:ereg has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
不管怎麼說,你的$模式不正確地轉義。您需要四個\
的 - 請參閱下面:
<?php
$string = '\n \n \n \n';
$patterns = '/\\\\n/';
$replacements = '/\\n/';
echo preg_replace($patterns, $replacements, $string); // string(19) "/\n/ /\n/ /\n/ /\n/"
?>
ereg已被棄用。 – CBusBus 2012-02-20 17:23:59