$m=$empire->query("select id,newstext,titlepic from table where titlepic ='' and id in (1913,1908)");
if(empty($m)){printerror2("该信息不存在,请重新操作!","history.go(-1)",1);}
while($r=$empire->fetch($m))
{
$text=$r['newstext'];
$id=$r['id'];
preg_match_all('/src\s*=\s*[\"|\']?(.*?)[\"|\']?\s/is', $text, $match);
echo "<pre>";print_r($match);echo "</pre>";
echo $match[1][0];
Array
(
    [0] => Array
        (
            [0] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/c6fa42b6f6b5e88bec3e691ab50452e3.jpg\" 
            [1] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/2af606af3dc5637e833eee4d09b808aa.jpg\" 
            [2] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/8adfd010048f7052f721ba6beef5ccab.jpg\" 
            [3] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/7f83288e149836dacf350ece29bd8bb8.jpg\" 
            [4] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/8800649a50bd992d322038ea69684d0c.jpg\" 
            [5] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/1bd2f4dcd20494e44805ad885fbca7a8.jpg\" 
            [6] => src=\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/d70937801b8bc7b37e2f5ea42067882e.jpg\" 
        )    [1] => Array
        (
            [0] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/c6fa42b6f6b5e88bec3e691ab50452e3.jpg\
            [1] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/2af606af3dc5637e833eee4d09b808aa.jpg\
            [2] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/8adfd010048f7052f721ba6beef5ccab.jpg\
            [3] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/7f83288e149836dacf350ece29bd8bb8.jpg\
            [4] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/8800649a50bd992d322038ea69684d0c.jpg\
            [5] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/1bd2f4dcd20494e44805ad885fbca7a8.jpg\
            [6] => \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/d70937801b8bc7b37e2f5ea42067882e.jpg\
        ))我是要取newstext字段里的img地址,取出来是这样的:
\"http://www.mydomain.com/d/file/house/tolet/2010-06-28/c6fa42b6f6b5e88bec3e691ab50452e3.jpg\
newstext字段的值大致是:
<p>交通方便,位置绝佳。Flat 位于Bermondsey Station 旁边 (SE16, 4AS) ,  2-3分钟步行距离到地铁站,楼下出门就有多辆公车往市中心(188,47,381),可直达到London bridge, Bank,  Liverpool Street, Waterloo, Holborn, 10分钟公车到大型超市Tesco Extra 和 surrey  quay shopping centre, 那里有保龄球场,Odeon 电影院,Pizza Hut 等。  房子是全新的三室一厅二卫一浴的现代公寓,客厅有沙发,电视,还有很大的阳台,因为在六楼,所以可以欣赏到很漂亮的夜景.  由于这个公寓是刚刚建成,里面的设施包括家具都是全新的,目前还有一个单人房空出(足足有10平方米),家具齐全,我们希望找一个爱干净不抽烟的女生(学 生或者professional)和我们两个女生一起住。目前两个女生都是英国的investment professional。  价格绝对合理540一个月,包所有bills (Water, Electricity, Gas, Broadband and  fantastic Sky TV channels).  因为我们不是为了赚钱,最重要的就是希望找一个能好好爱护这个房子并且打算长期入住的女生,所以我们的价格绝对超值,而且如果长住,价格可以商量。</p>
<p>入住时间:7月10日起</p>
<p>看房时间:周一至周五晚上7点以后,周末全天</p>
<p><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/c6fa42b6f6b5e88bec3e691ab50452e3.jpg\" alt=\"c6fa42b6f6b5e88bec3e691ab50452e3.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/2af606af3dc5637e833eee4d09b808aa.jpg\" alt=\"2af606af3dc5637e833eee4d09b808aa.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/8adfd010048f7052f721ba6beef5ccab.jpg\" alt=\"8adfd010048f7052f721ba6beef5ccab.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/7f83288e149836dacf350ece29bd8bb8.jpg\" alt=\"7f83288e149836dacf350ece29bd8bb8.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/8800649a50bd992d322038ea69684d0c.jpg\" alt=\"8800649a50bd992d322038ea69684d0c.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/1bd2f4dcd20494e44805ad885fbca7a8.jpg\" alt=\"1bd2f4dcd20494e44805ad885fbca7a8.jpg\" /><img height=\"100\" width=\"100\" src=\"http://www.go2uk.info/d/file/house/tolet/2010-06-28/d70937801b8bc7b37e2f5ea42067882e.jpg\" alt=\"d70937801b8bc7b37e2f5ea42067882e.jpg\" /></p>请问preg_match_all('/src\s*=\s*[\"|\']?(.*?)[\"|\']?\s/is', $text, $match);这句应该怎么改?

解决方案 »

  1.   

    $match[1] 就是全部的图片链接
    如果你只要第一个,则取 $match[1][0]
    或将 preg_match_all 改为 preg_match
      

  2.   

    preg_match_all('/src\s*=\s*(\\?["']?)(.*)\1\s*/is', $text, $match);
      

  3.   

    1楼: 取出来是 \"http://www.mydomain.com/d/file/house/tolet/2010-06-28/c6fa42b6f6b5e88bec3e691ab50452e3.jpg\
    有反斜线和引号2楼的代码有错,改成: preg_match_all('/src\s*=\s*(\\?["\']?)(.*)\1\s*/is', $text, $match);
    取不到任何值,继续求解~~
      

  4.   

    自己解决了,加个去反斜线的 stripslashes
      

  5.   

    perl上正则写习惯了,忘了在PHP上是需要转义的
    preg_match_all('/src\\s*=\\s*(\\\?[\"\']?)(.*)\\1\\s*/is', $text, $match);