Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-解析<;的src属性;img>;串标签_Php_Regex_Parsing_Src - Fatal编程技术网

PHP-解析<;的src属性;img>;串标签

PHP-解析<;的src属性;img>;串标签,php,regex,parsing,src,Php,Regex,Parsing,Src,解析第一个属性的src属性的最简单但可靠的方法是什么 我编写了这个脚本,但在某些情况下它不是一个可靠的解决方案: $string = $item['description']; $arr = explode('img', $string); $arr = explode('src', $arr[1]); $arr = explode('=', $arr[1]); $arr = explode('>', $arr[1]); $pos1 = strpos($arr[

解析第一个
属性的
src
属性的最简单但可靠的方法是什么


我编写了这个脚本,但在某些情况下它不是一个可靠的解决方案:

  $string = $item['description'];
  $arr = explode('img', $string);
  $arr = explode('src', $arr[1]);
  $arr = explode('=', $arr[1]);
  $arr = explode('>', $arr[1]);

  $pos1 = strpos($arr[0], '"')+1;
  $pos2 = strrpos($arr[0], '"')-1;

  if (!$pos1) {
    $pos1 = strpos($arr[0], "'")+1;
    $pos2 = strrpos($arr[0], "'")-1;
  }

  if ($pos1 && $pos2) { 
    $result = substr($arr[0], $pos1, $pos2); 
  }
  else { $result = null; }

如果你想得到img标签所有属性的值,你需要做两个正则表达式。 1.获取img标记的内容:

/<\s*img([^<>]+)>/

如果你想得到img标签所有属性的值,你需要做两个正则表达式。 1.获取img标记的内容:

/<\s*img([^<>]+)>/
以下是你的答案: 首先,你需要打电话给这个正则表达式

<img(.*?)>
以下是你的答案: 首先,你需要打电话给这个正则表达式

<img(.*?)>
试试这个

<img\s+src\s?\=\s?\"(https?\:\/\/[\w\.\/]+)\".*\/>

试试这个

<img\s+src\s?\=\s?\"(https?\:\/\/[\w\.\/]+)\".*\/>

唯一最安全的方法是使用
DOMDocument
内置(在PHP5中)类。使用
getElementsByTagName()
,检查长度是否大于0,并使用
getAttribute('src')
抓取第一项
src
值:


请参见唯一最安全的方法是使用
DOMDocument
内置(在PHP5中)类。使用
getElementsByTagName()
,检查长度是否大于0,并使用
getAttribute('src')
抓取第一项
src
值:


请参见

不是外部库,为什么不使用它?使用
getElementsByTagName()
,抓取第一项,并使用
$img->getAttribute('src')
获取
src
。DOMDocument可能在某些服务器上不可用?DOMDocument是一个PHP内置类。好的,我们会尝试,谢谢,它不是一个外部库,为什么不使用它?使用
getElementsByTagName()
,抓取第一个项目,然后使用
$img->getAttribute('src')
获取
src
。DOMDocument可能在某些服务器上不可用?DOMDocument是一个PHP内置类。好的,谢谢,如果标记中有其他属性?如果标记中有其他属性?