区切り文字が 1 つ以上の "\n" である配列にテキストを分割し、配列の内容を要素として unorder html-list に入れたいと考えています。件名の文字列に $1 があるときに preg_split を使用してこれを行うと、奇妙な結果が得られます。結果を分割した結果の配列を見るだけで問題はなく、$1 は問題を引き起こさなかったようですが、配列をループして html リストにすると、予想とは異なる結果が作成されます (以下の例を参照)。
これが件名の文字列である場合のように:
「一行目
2 行目 $1
三行目」
次のようになります。
- 最初の行
- 2 行目 $1
- 三行目
しかし、次のようになります。
- 最初の行
- 2 行目 1 行目 2 行目 $1 3 行目
- 三行目
なぜこれが起こるのか誰か知っていますか?$1 は予約された意味を持つある種の特別な html または php 文字ですか?
これは私が書いたコードです:
$listElements = preg_split('/[\n]+/',$subject);
$output = '<ul>';
foreach ( $listElements as $val ) {
$output .= '<li>' . $val . '</li>';
}
$output .= '</ul>';