preg_match_all问题

时间:2012-12-11 10:51:09

标签: php html preg-match-all

我正在与这个小的php问题作斗争,我正在尝试从页面中读取url部分。

php代码是这样的:

preg_match_all('!<a href="Jobbörse-reader\/items\/(.*?)" title=".+">(.*?)</a>!',$content,$ergebnisse);

我的问题是preg_match_all()返回0,如果我var_dump $ergebnisse,我会得到这样的空数组:

array(3) { [0]=> array(0) { } [1]=> array(0) { } [2]=> array(0) { } }

我正在阅读的页面代码是:

<a href="Jobbörse-reader/items/somelink.html" title="some text">NAME</a>

我需要somelink.html和NAME,但显然,它无法与之匹敌,有人可以帮助我吗?

BTW:我正在成功阅读内容。 谢谢

2 个答案:

答案 0 :(得分:1)

工作得很好:

   <?php $content='<a href="Jobbörse-reader/items/somelink1.html" title="some text1">NAME1</a>

    <a href="Jobbörse-reader/items/somelink2.html" title="some text2">NAME2</a>

    <a href="Jobbörse-reader/items/somelink3.html" title="some text3">NAME3</a>';

    preg_match_all('!<a href="Jobbörse-reader\/items\/(.*?)" title=".+">(.*?)</a>!',$content,$ergebnisse);

    print_r($ergebnisse);

答案 1 :(得分:1)

我已经测试了您的代码

<?php
$content='<body>
<a href="Jobbörse-reader/items/somelink.html" title="some text">NAME</a>
</body>';
echo preg_match_all('!<a href="Jobbörse-reader\/items\/(.*?)" title=".+">(.*?)</a>!',$content,$ergebnisse);
echo "\n";
var_dump($ergebnisse);

它完全有效:

$ php test.php 
1
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(73) "<a href="Jobbörse-reader/items/somelink.html" title="some text">NAME</a>"
  }
  [1]=>
  array(1) {
    [0]=>
    string(13) "somelink.html"
  }
  [2]=>
  array(1) {
    [0]=>
    string(4) "NAME"
  }
}