使用javascript或PHP从给定的URL获取图像源

Get image source from given URL with javascript or PHP

本文关键字:URL 获取 图像 javascript PHP 使用      更新时间:2024-02-15

我想做的是:

  1. 用户使用类似jing的应用程序进行截屏
  2. 粘贴景回来的链接
  3. 服务器处理用户输入的链接,并提取图像源url。但是,我不知道服务器将如何获得"干净"的图像源URL。例如,这是景分享截图后返回的链接http://screencast.com/t/zxBzNNkcg但是图片的真实url看起来像http://content.screencast.com/users/TT13/folders/Jing/media/c25ec5c6-bc6a-413c-a50b-ada95fac4ed2/2012-07-25_0221.png
  4. 服务器返回图像源URL不知道

有没有任何可能的方法可以用Javascript或PHP获取图像url?

您可以使用Simple PHP DOM Parser从url中检索图像,而无需考虑url,只要它包含和图像在里面,就像这样:

foreach($html->find('div[class=div-that-contain-the image]') as $div) {         
        foreach($div->find('img') as $img){     
            echo "<img src='" . $img->src . "'/>";          
        }
    }

这就是我的解决方案。

您可以使用像Query Path这样的DOM库来检索包含图像的页面。

使用它可以提取图像的URL。

所以在你的第三步:

  • 获取共享屏幕截图页面的来源(可能使用file_get_contents
  • 使用查询路径提取屏幕截图的图像src
  • 将图像src URL返回给用户

是。如果你右键单击图像并转到"复制图像位置",你会看到它http://content.screencast.com/users/TT13/folders/Jing/media/c25ec5c6-bc6a-413c-a50b-ada95fac4ed2/2012-07-25_0221.png

如果要以编程方式进行,则可以使用cURL和simplehtmldom.sourceforge.net来解析实际链接的输出HTML。

Javascript答案:

输出图像是否总是具有相同的类embeddedObject

如果是这样的话,比如怎么样

myVar = document.getElementsByClassName('embeddedObject');
myVar[0].getAttribute("src");

当然,myVar[0]引用假设页面上只有一个带有embeddedObject类的图像,否则您需要排序,或者知道每次引用哪个索引。

此外,令人遗憾的是,IE8似乎不支持这一点(你需要支持哪个浏览器?):http://caniuse.com/getelementsbyclassname