写了一个函数,用来提取一段HTML代码中第一张图片的路径,代码如下:
function lj_picsub($content) {    $reg="/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i";  preg_match($reg,$content,$matches); $str = (string)$matches[2]; if($str == NULL){return 0;} else{ return $str;} }
在本地运行(php5.3.5 apache2.2 Win7),没有问题;
上传到服务器(php5.2.8 IIS Windows Server 2003),返回的结果总是0;
求解。
另注:字符编码gb2312,utf-8都试过了。

解决方案 »

  1.   

    把$content出输看看是不是正确的,
      

  2.   

    楼上正解!!!我echo后发现服务器上echo出的内容,所有的"前面都有了个\,导致在本地可以的正则失效,修改后可以使用。
    我自己写的函数:
    function lj_picsub($content)
    {

    $arr =explode("src=\\\"/sports/",$content,2);//我本地根文件夹叫sports
    $arr2 = $arr[0];
    if($arr2 == $content)
    {
    return 1;
    }
    else
    {
    $arr2 = explode(".jpg",$arr[1],2);
    $str = $arr2[0];
    $str = $str.".jpg";
    return $str;
    }

    }因为本人不懂正则,所以就自己写了个函数,哈哈哈~