(不是以英语为母语的人)
我正在使用PHP进行个人项目,其中我使用Simple HTML Parser来解析给定URL的HTML并检索DIV中具有特定ID或类的第一个图像(maincontent,content, main,wrapper等 - 它都在一个数组中)并忽略广告。目标是拍摄这张图片并用它制作缩略图,就像在Digg和其他人身上一样。
我认为一切正常,直到我尝试使用网站Snopes(“http://www.snopes.com/photos/animals/luckycoyote.asp”< - 此页面更精确)我的脚本。
它获得的第一个图像的来源是:“graphics / luckycoyote1.jpg”。到目前为止,为了纠正这个问题,我创建了一个小函数,它获取给定URL的域名,并在IMG的源属性之前插入它。所以对于像Snopes.com这样的网站,它给了我:“http://www.snopes.com/graphics/luckycoyote1.jpg”...而此图片的Snopes上的真实网址是“http://www.snopes.com * /照片/动物/ ***图形/ luckycoyote1.jpg“(或更准确地说:”http:// ** graphics1 .snopes.com / photos / animals / graphics / luckycoyote1.jpg“ - 注意子域名这里)。
所以我的主要问题是:当我只给出“相对路径”时,如何在外部/动态检索图像的完整URL地址(“绝对路径”)?我很确定这是可能的,因为当我在Facebook上粘贴链接时“你在做什么?”例如,它给了我正确的图像路径,而在网站上,图像的来源只是(例如)“image / photo / example.jpg”。
感谢您的时间。
答案 0 :(得分:3)
当您获得相对图片网址graphics/luckycoyote1.jpg
时,这意味着src=""
代码不以/
开头,您应该使用您浏览的当前路径,而不是使用域名。
要在PHP中运行dirname('http://www.snopes.com/photos/animals/luckycoyote.asp')
,它将返回您需要的路径。坚持在graphics/luckycoyote1.jpg
前面,你会得到你的形象。
graphics1.snopes.com会在服务器上自动发生,您不必担心它。当图片src=""
以/
开头时,请改为使用域名http://www.snopes.com
。
答案 1 :(得分:0)
在你的情况下,我的猜测是有一个服务器重定向正在进行,唯一真正的方法是你尝试发一个web请求,以便在你最初完成时使用“默认域”获取图像,然后在此过程中查看重定向到的位置/内容。