html-使用PHP获取img src

在此示例中,我想将SRC属性转换为变量:

因此,例如-我想获取一个变量$foo = "/images/image.jpg"。重要! src属性将是动态的,因此不能进行硬编码。有什么快速简便的方法可以做到这一点?

谢谢!

编辑:图像将是一个巨大的字符串的一部分,基本上是新闻故事的内容。 因此,图像只是其中的一部分。

EDIT2:该字符串中将包含更多图像,我只想获取第一个图像的src。 这可能吗?

7个解决方案

97 votes

使用类似DOMDocument的HTML解析器,然后使用DOMXpath评估您要查找的值:

$html = '

alt="Image" width="100" height="100" />';

$doc = new DOMDocument();

$doc->loadHTML($html);

$xpath = new DOMXPath($doc);

$src = $xpath->evaluate("string(//img/@src)"); # "/images/image.jpg"

或对于那些确实需要节省空间的人:

$xpath = new DOMXPath(@DOMDocument::loadHTML($html));

$src = $xpath->evaluate("string(//img/@src)");

对于那里的一线客:

$src = (string) reset(simplexml_import_dom(DOMDocument::loadHTML($html))->xpath("//img/@src"));

hakre answered 2020-02-16T15:13:00Z

21 votes

使用DOM解析器进行这种HTML解析会更好。 考虑以下代码:

$html = '

alt="Image" width="100" height="100" />';

$doc = new DOMDocument();

libxml_use_internal_errors(true);

$doc->loadHTML($html); // loads your html

$xpath = new DOMXPath($doc);

$nodelist = $xpath->query("//img"); // find your image

$node = $nodelist->item(0); // gets the 1st image

$value = $node->attributes->getNamedItem('src')->nodeValue;

echo "src=$value\n"; // prints src of image

输出:

src=/images/image.jpg

anubhava answered 2020-02-16T15:13:24Z

14 votes

我已经用更简单的方法做到了,虽然不尽如人意,但这是一个快速的技巧。

$htmlContent = file_get_contents('pageURL');

// read all image tags into an array

preg_match_all('/]+>/i',$htmlContent, $imgTags);

for ($i = 0; $i < count($imgTags[0]); $i++) {

// get the source string

preg_match('/src="([^"]+)/i',$imgTags[0][$i], $imgage);

// remove opening 'src=' tag, can`t get the regex right

$origImageSrc[] = str_ireplace( 'src="', '', $imgage[0]);

}

// will output all your img src's within the html string

print_r($origImageSrc);

Torsten answered 2020-02-16T15:13:44Z

10 votes

我知道有人说您不应该使用正则表达式来解析HTML,但是在这种情况下,我发现它非常好。

$string = '';

preg_match('/

$foo = array_pop($result);

kba answered 2020-02-16T15:14:04Z

5 votes

$imgTag = <<< LOB

LOB;

preg_match('%%i', $imgTag, $matches);

$imgSrc = $matches[1];

演示

注意:您应该使用HTML解析器,例如DOMDocument,而不是正则表达式。

Pedro Lobito answered 2020-02-16T15:14:29Z

3 votes

$str = '';

preg_match('/(src=["\'](.*?)["\'])/', $str, $match); //find src="X" or src='X'

$split = preg_split('/["\']/', $match[0]); // split by quotes

$src = $split[1]; // X between quotes

echo $src;

其他正则表达式可以用来确定所拉出的src标签是否是类似这样的图片:

if(preg_match('/([jpg]{3}$)|([gif]{3}$)|([jpeg]{3}$)|([bmp]{3}$)|([png]{3}$)/', $src) == 1) {

//its an image

}

squarephoenix answered 2020-02-16T15:14:49Z

-1 votes

可能有两个简单的解决方案:

HTML本身就是一个XML,所以如果您将标记加载为XML并动态地动态获取其属性(甚至是dom数据属性,例如data-time或其他任何内容),则可以使用任何XML解析方法。

对php使用任何html解析器喜欢[http://mbe.ro/2009/06/21/php-html-to-array-working-one/]要么PHP解析HTML数组谷歌这

Jitendra answered 2020-02-16T15:15:18Z

php 获取src,html-使用PHP获取img src相关推荐

  1. html+设置img+src属性值,javascript获取、设置修改img的src属性(get/setAttribute)

    在开发网站过程中,事先就设置好了图片img的src性,一般来说很少修改这个属性,网站加载时直接显示事先设置好的图片.但如果网页要求实现滚屏加载图片(动态加载图片),也就是一次不显示网页内的所有图片,当 ...

  2. java 获取手机归属地_java 获取手机归属地

    java 获取手机归属地 [2021-01-30 20:46:44]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  3. vue使用腾讯地图获取经纬度和逆解析获取详细地址

    vue使用腾讯地图获取经纬度和逆解析获取详细地址 示例 必须在腾讯api中申请自己的key 打开这个webservice用来逆解析详细地址 下面是代码 1 , html创建放地图的容器 <div ...

  4. Go 学习笔记(52)— Go 标准库之 path/filepath(判断绝对路径、拆分目录和文件、组合路径、返回路径目录、获取路径最后文件名、获取文件扩展名、路径匹配规则、递归遍历目录)

    1. 概述说明 import "path/filepath" filepath 包实现了兼容各操作系统的文件路径的实用操作函数. 2. 主要函数 2.1 func IsAbs fu ...

  5. java如何获取单框的值_javaWeb获取文本框的值

    javaWeb获取文本框的值 [2021-02-01 21:11:36]  简介: php if不等于空的判断方法:首先通过"$_POST['content'];"获取文本框的内容 ...

  6. java 获取泛型的type,如何获取泛型的Type类型

    开发中很多时候都遇到或使用到泛型.例如在json转换成bean对象或其他对象,而对象中存在泛型,这时候需要用到TypeToken. Type:是java里的 java.lang.reflect.Typ ...

  7. DBSCAN的两个核心参数是什么?如何获取最佳参数?如何可视化获取的过程?

    DBSCAN的两个核心参数是什么?如何获取最佳参数?如何可视化获取的过程? sklearn中含有DBSCAN密度聚类算法 cluster.DBSCAN DBSCAN:Density-Based Spa ...

  8. mysql获取当月数据_MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  9. 网站推广流量获取仍需寻找全新获取网站推广流量渠道

    每天面对实时变化的用户需求市场,站长们想通过巩固自家网站流量以保持日常运营很难,还是要靠获取新流量的方式弥补每天都在流失的用户访问流量.而在搜索引擎中,获取流量的方式十分多元,站长想要突破传统获取桎梏 ...

  10. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取 Activity 中的所有方法 | 获取方法上的注解 | 获取注解上的注解 | 通过注解属性获取事件信息 )

    文章目录 前言 一.获取 Activity 中的所有方法 二.获取方法上的注解 三.获取注解上的注解 四.通过注解属性获取相关事件信息 前言 Android 依赖注入的核心就是通过反射获取 类 / 方 ...

最新文章

  1. 【数学和算法】协方差矩阵、方差
  2. 关于SharePoint中管理列表项权限
  3. javacript 验证函数
  4. java 换行分割_java – 如何通过换行分割字符串?
  5. DSP实验报告四:GMSK 调制与解调
  6. C#开发串口调试助手的详细教程
  7. 企业级网络性能优化 课内8 vlanif2in1
  8. 张曦予巴黎时装周儿童单元T台走秀演绎童真风采
  9. 【新闻】微信出现大面积BUG!腾讯紧急回应!
  10. 【二叉树】二叉树的堂兄弟节点
  11. Java整合jcef
  12. 网络编程——UDP协议的实践(词典翻译服务器(英译汉))
  13. 【Unity3D软硬件】Unity3D与串口通信 SerialPort类完全教程
  14. 菜鸟的源代码审计之路
  15. java读取propertiesshib_Java读取Properties文件的六种方法
  16. PAT乙级1071小赌怡情 15(分)
  17. 西南交大计算机绘图大作业,西南交大计算机绘图a第一次离线作业.doc
  18. AST实战|ob混淆一键还原开源啦,免安装babel库
  19. 斯蒂芬.沃尔夫勒姆:计算万物的理论
  20. HTML中列表、表格与媒体元素

热门文章

  1. pytorch神经网络解决回归问题(非常易懂)
  2. 解决eclipse安装maven的问题:Unable to update index for central
  3. win11杜比视界音效怎么打开 window11开启杜比视界音效的步骤方法
  4. Java实现邮箱验发送证码、代码示例【qq邮箱】
  5. bo dto java vo_Java 键对象 KO (key object) 介绍
  6. nginx 带宽_Nginx日志如何分析 GoAccess
  7. ip route配置静态路由_华为路由交换技术 | 静态路由配置
  8. Scrum Meeting博客目录
  9. SqlServer整库备份还原脚本
  10. Android Graphviz 安装