一个简单的正则怎么也调不对

3m2u 2008-04-01 07:16:21
$str= file_get_contents("http://www.china-pub.com/714927");
//提取里面的商品图片,代码如下:
//"<img src='http://images.china-pub.com/ebook710001-715000/714927/zcover.jpg' mysrc='/ebook710001-715000/714927' n='-1' onerror='jp.oe(this);'";
//正则,不知道为啥没有结果 诡异
$reg_test = "/src='(http:\/\/images\.china\-pub\.com\/ebook.*?)'/is";
preg_match_all($reg_test, $str, $result);
print_r($result);
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
3m2u 2008-04-01
  • 打赏
  • 举报
回复
发现file_get_contents的问题

$str= str_replace("''","'",
file_get_contents("http://www.china-pub.com/714927")
);
读进来的单引号都变成''了

它为什么这么处理呢,搞不懂
3m2u 2008-04-01
  • 打赏
  • 举报
回复
我怎么就不行呢
用strpos还能找到。
其它的正则还没啥问题,单单这个。奇怪

-bash-3.1$ php test.php
5420Array
(
[0] => Array
(
)

[1] => Array
(
)

)

-bash-3.1$ cat test.php
<?

$str= file_get_contents("http://www.china-pub.com/714927");
print strpos($str,"http://images.china-pub.com/ebook710001-715000/714927/zcover.jpg");
//" <img src='http://images.china-pub.com/ebook710001-715000/714927/zcover.jpg' mysrc='/ebook710001-715000/714927' n='-1' onerror=
$reg_test = "/src='(http:\/\/images\.china\-pub\.com\/ebook.*?)'/is";
preg_match_all($reg_test, $str, $result);
print_r($result);

?>

-bash-3.1$ php -v
PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
-bash-3.1$
vstian 2008-04-01
  • 打赏
  • 举报
回复
$reg_test = "/src='(http:\/\/images\.china\-pub\.com\/ebook(.*)?)'/is";
himan2002 2008-04-01
  • 打赏
  • 举报
回复
我试了一下应该是可以的:
Array ( [0] => Array ( [0] => src='http://images.china-pub.com/ebook710001-715000/714927/zcover.jpg' ) [1] => Array ( [0] => http://images.china-pub.com/ebook710001-715000/714927/zcover.jpg ) )

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧