<input name="ti01tle" type="text" id="title" value="" class="txt" title="標題最多爲60個字符" />
<input name="title100" type="text" id="title" size="60" title="標題最多爲60個字符" />
<input name="tbbitle" type="text" class="colorblue" onfocus="this.className='colorfocus';" onblur="this.className='colorblue';" id="title" size="60" title="標題最多爲60個字符" />
一個論壇的標題輸入筐 name="xxxx",做了一些變化。不是簡單的name="title", 而是name="a123title" 等等,但是id="title"是不變的。
我要抓取紅色部分,怎樣用一個正則表達式匹配出來?
foolbirdflyfirst
(龍騰虎躍)
$html = <<<html
<input name="ti01tle" type="text" id="title" value="" class="txt" title="標題最多爲60個字符" />
<input name="title100" type="text" id="title" size="60" title="標題最多爲60個字符" />
<input name="tbbitle2" type="text" class="colorblue" onfocus="this.className='colorfocus';" onblur="this.className='colorblue';" id="title" size="60" title="標題最多爲60個字符" />
<input id="title" name="tbbitle" type="text" class="colorblue" onfocus="this.className='colorfocus';" onblur="this.className='colorblue';" size="60" title="標題最多爲60個字符" />
<input id="title4" name="tbbitle" type="text" class="colorblue" onfocus="this.className='colorfocus';" onblur="this.className='colorblue';" size="60" title="標題最多爲60個字符" />
html;
$reg = '#<input/s+(?:(?=id/="title")[^>]*name="([a-z0-9]*)"[^>]*)|(?:[^>]*name="([a-z0-9]*)"[^>]*(?=id/="title")[^>]*)/>#is';
preg_match_all($reg,$html,$mat);
echo "<pre/>";
print_r($mat[1]);//id="title"出現在name=".."之前
print_r($mat[2]);//id="title"出現在name=".."之後