0
我用下面的代碼中插入數字ID的段落標記...修改preg_replace_callback插入ID的段落標記
$c = 1;
$r = preg_replace('/(<p([^>]+)?>)/ie', '"<p\2 id=\"" . $c++ . "\">"', $Article);
$r = preg_replace('/(<p.*?)id="'.($c-1).'"(>)/i', '\1id="Last"\2', $r);
$Article = $r;
然而,插入id爲「最後」在最後一個段落標記,像這樣的:
<p id="1">
<p id="2">
<p id="last">
然而,它開始拋出錯誤,所以我不得不改變它preg_replace_callback ...
$c = 1;
$r = preg_replace_callback('~<p([^>]*)>~i', function($res) use (&$c){
return '<p'.$res[1].' id="'.$c++.'">';
}, $Article);
它工作正常,除了它不再給最後一段ID =「最後」
有誰知道如何修改它,以便最後一段有一個ID =「最後」?如果不是太複雜,它甚至會更好,如果最後一段有一個數字ID,但A類「最後,」像這樣...
<p id="1">
<p id="2">
<p id="3" class="last">
編輯:
這裏是我的最新嘗試...
$c = 1;
$r = preg_replace('/(<p.*?)id="'.($c-1).'"(>)/i', '\1id="Last"\2', $Article);
$Article = preg_replace('/(<p.*?id="'.($c-1).'")(>)/i', '\1 class="Last"\2', $Article);
// )->
$Content = str_replace('$Name_Common', '<span style="color: #900"><strong>'.$Common.'</strong></span>', $Article);
文章顯示確定,但段落標籤沒有ID。
謝謝,但我很困惑。它不適合我,可能是因爲我還沒有想出如何製作$ r = $ Article。我已經嘗試了明顯的,但它不適合我。另外,你的代碼是preg_replace,而不是preg_replace_callback。這很好,除了preg_replace導致錯誤...雖然你的腳本不會產生相同的錯誤。無論如何,我以爲我在某處讀過preg_replace已被棄用,應該用preg_replace_callback替換。就像我說的,我很困惑。 ;) – 2014-10-07 01:26:13
@DavidBlomstrom,這個preg_replace沒有'e'修飾符。僅用「e」修飾符棄用preg_replace。從這裏閱讀更改日誌:http://php.net/preg_replace – sectus 2014-10-07 01:28:56
並且[there](http://php.net/manual/en/reference.pcre.pattern.modifiers.php)關於此修飾符 – sectus 2014-10-07 01:30:14