应该就是".."补为你的采集url.个人思路:先通过正则过滤出图片url
$pattern = "/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i";(该正则不适合,自己写)
preg_match_all($pattern,$str, $match); //过滤出$str中图片地址判断过滤出的url是否存在"http://"字符串
if(!strstr($match[2],'http://')){
添加采集url
}else{
不做改动.
}
解决方案 »
- phpDesigner问题
- sprintf('%04b', $forumlink['type']);这句话是什么意思?
- 已经连上mysql数据库了,为什么网页显示无法连接数据库
- mysql多表查询
- 关于重写问题
- 北京新公司招技术经理(PHP+MYSQL技术)
- 时间输出不解问题!
- 通过shell执行php的问题?
- Apache 1.3.14 for win32那里有下载的?
- 关于APACHE中虚拟目录的设置问题!!!
- 关于while的写法,zs提示我的写法有漏洞,那么正确的应该怎么写?
- supplied argument is not a valid MySQL-Link resource 是什么意思怎么解决?拜托
$p = parse_url($url);
$path = split('/', $p['path']);
$path[0] = $p['host'];
array_pop($path);print_r($path);//$path是格式化后的路径信息//以下常见的图片路径供测试用
$img = './img/load/2.jpg';
$img = '/img/load/2.jpg';
$img = '../../img/load/2.jpg';
$img = 'img/load/2.jpg';//分析并配全路径
$tmp = split('/', $img);
switch(1) {
case $tmp[0] == '':
array_shift($tmp);
$img = $path[0] .'/'. join('/',$tmp);
break;
case $tmp[0] == '.':
array_shift($tmp);
$img = join('/', $path) .'/'. join('/',$tmp);
break;
case $tmp[0] == '..':
while(($c=array_shift($tmp)) == '..') {
array_pop($path);
}
array_unshift($tmp, $c);
$img = join('/', $path) .'/'. join('/',$tmp);
break;
default:
$img = join('/', $path) .'/'. join('/',$tmp);
break;
}
echo $img;