私は正規表現に夢中なのですが、なぜ $matches[0] が空なのでしょうか?
正規表現を書きます。通常は一致しますが、一致する文字列全体を返すためにも必要です
正規表現は次のとおりです
<br />preg_match( '/^<!--\sLayout\sname\s*=\s*"(.*)"\s-->/', $_content, $matches);<br />
<br /><!-- Layout name="header" --><br /><!-- Layout name="footer" -->
Array<br />(<br /> [0] => <br /> [1] => header<br />)
<br />preg_match( '/^<!--\sLayout\sname\s*=\s*"(.*)"\s-->$/', $_content, $matches);<br />
$_content =<<< HTML<br /><!-- Layout name="header" --><br /><!-- Layout name="footer" -->
HTML;<br />preg_match( '/^<!--\sLayout\sname\s*=\s*"(.*)"\s-->/', $_content, $matches);<br />print_r($matches);
Array<br />(<br /> [0] => <!-- Layout name="header" --><br /> [1] => header<br />)<br />
<br />$_content='<!-- Layout name="header" --><br /><!-- Layout name="footer" -->';<br />preg_match_all('/<!--\sLayout\sname\s*=\s*"(.*?)"\s-->/', $_content, $matches);<br /><br />print_r($matches);<br />/*<br />Array<br />(<br /> [0] => Array<br /> (<br /> [0] => <!-- Layout name="header" --><br /> [1] => <!-- Layout name="footer" --><br /> )<br /><br /> [1] => Array<br /> (<br /> [0] => header<br /> [1] => footer<br /> )<br /><br />)<br />*/<br />
$str='/bbs/www/csdn/net/xxx/';<br />if(strpos($str,'bbs')!=0 <br><font color='#FF8000'>------解决思路----------------------</font><br> strpos($str,'bbs')===false){<br /> //等于0就是以bbs开头,未找到返回false(全等于false)<br /> echo 'exe';<br />}
<br />$str='www/bbs/net/xxx/';<br />if(preg_match('/^bbs.+?/', $str)){<br /> echo '以bbs开头';<br />}else{<br /> echo 'exe';<br />}<br />