我想將文本拆分爲數組,其中分隔符是一個或多個「\ n」,然後將數組的內容作爲元素放入unorder html-list中。當我在主題字符串中存在$ 1時使用preg_split執行此操作時,我得到一個奇怪的結果。僅僅看看分割結果產生的數組是不錯的,$ 1似乎沒有引起任何問題,但是當我遍歷數組並將其放到一個html列表中時,它會創建一個不同的結果,然後就會出現這個結果(請參閱下面的示例)
一樣,如果這是主題字符串:
「第一線
二$ 1行
三線」
它應該成爲:
- 第一行
- 二$ 1行
- 三線
但它變成:
- 第一行
- 二lineFirst線 二$ 1行 三線
- 第三行
有誰知道爲什麼會發生這種情況? 是$ 1某種特殊的html或php字符,具有保留的含義嗎?
這是我寫的代碼:
$listElements = preg_split('/[\n]+/',$subject);
$output = '<ul>';
foreach ($listElements as $val) {
$output .= '<li>' . $val . '</li>';
}
$output .= '</ul>';
衝,很高興知道。但我仍然不確定這是否是我的問題,或者如何解決這個問題。我不會在任何地方使用雙引號,所以這不是問題。我如何「逃避」1美元? (另外我對$ 1變量有點好奇,我從來沒有在代碼中設置它,所以它來自哪裏?) – numfar
啊!我解決了這個問題。 $ output稍後在preg_replace()中使用,並且我捕獲了存儲在$ 1中的某些內容。我可以重寫模式,以便任何內容都不存儲在$ 1中,但是如果我爲我的模式匹配,總是不會設置$ 0?所以我想這需要逃避。 – numfar