簡體   English   中英

帶有 PHP_EOL 的 preg_replace_callback 在 Linux 上不起作用

[英]preg_replace_callback with PHP_EOL does not work on Linux

我有一個 PHP 代碼,流程用戶輸入表單 html 表單,應該從代碼中刪除 PHP_EOL 標志。 如果我在本地 Win 10 機器上測試它,它運行良好。 但由於它在生產 Linux 服務器上,它沒有。 代碼如下:

$text = preg_replace_callback('/```([^`]+)```/', function($m) {
    return '<pre class="prettyprint custom"><code>' . trim($m[1], PHP_EOL) . '</code></pre>';
}, $text);

我不確定,但我認為原因是輸入來自我的 Window 瀏覽器到 Linux。 我是對還是錯?

您必須修剪兩個結束符。 Linux \n和 Windows \r\n 而不是使用PHP_EOL至極僅代表當前系統上的換行符,您可以使用

trim($m[1],"\r\n")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM