htmlタグから著者名を抽出します。タグは次のようになります。preg_matchは空のマッチをもう1つ表示します
<a href="http://somewhere.com"> Manfred </a>
が、名前が長いのであれば、それは次のようになります。
<a title="floormanager004" href="http://somewhere.com"> floormanage... </a>
私は両方のケースをカバーするために、次の正規表現を持っている:
~<a.*(title="(.{2,50})".*|>(.*))</a>~Usi
これは2番目のケースでうまく動作し、次のような2次元配列を返します。
array(2) {
[0]=>
string "title="floormanager004" href="http://somewhere.com"> floormanage... "
[1]=>
string "floormanager004"
}
しかし、最初のケースのために、配列は、追加の空のフィールドが含まれます。
array(2) {
[0]=>
string "> Manfred "
[1]=>
string ""
[2]=>
string " Manfred "
}
はなぜ、このフィールドは表示されず、どのようにそれを取り除くためには?
免責事項:あなたはつもりbaaaaad時間を持っているhtmlの解析する正規表現を使用して、あなたが今までに今までにこれを行うべきではありませんが、私の場合、XPATHなどよりも高速であることが証明されていますときに私が知っている 。これにコメントしないでください。
最初のタグはあなたの正規表現で検索する 'title'属性を持っていません。つまり、そこになければ、結果に空のエントリがあります。 – Nadh