Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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获取img src_Php_Regex - Fatal编程技术网

从数组查询结果PHP获取img src

从数组查询结果PHP获取img src,php,regex,Php,Regex,查询后,我需要从记录中获取img src: while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $rows[] = array( 'id' => $row['ID_CONTENT'], 'titolo' => $row['TITOLO'], 'articolo' => $row['DESCRIZIONE'], 'giorno' => $row['GIORNO'],

查询后,我需要从记录中获取img src:

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
  $rows[] = array(
     'id' => $row['ID_CONTENT'],
     'titolo' => $row['TITOLO'],
     'articolo' => $row['DESCRIZIONE'],
     'giorno' => $row['GIORNO'],
     'foto' => "get img src from this: $row['DESCRIZIONE']",
     'fonte' => $row['FONTE']
);}
可能吗? 我尝试使用
preg_match_all('/]+>/I',$row['descripione'],$res[0])
但结果只有1个

好吧,我这么说:

创建一个函数:

然后:

function srcImg($num) {
            preg_match('@src="([^"]+)"@',$num,$match);
            $src = array_pop($match);
            return $src;
         }

我强烈推荐@Javier Núñez的建议,并使用HTML解析器,因为正则表达式无法涵盖所有可能发生的情况。然而,如果出于任何原因您不能,那么您可以尝试使用这个正则表达式:(未测试)

您可以在preg_比赛中使用它,如下所示:

src=['"]([^"]+)['"]
如果你需要一个黑客的方法,你可以修补它。我们都明白,迫切需要找到更完美的解决方案

如果您想使正则表达式更加健壮,可以使用测试正则表达式


编辑:我没有全部使用preg_match_。你可能会想用它来代替。

我强烈推荐@Javier Núñez的建议,并使用HTML解析器,因为正则表达式无法涵盖所有可能发生的情况。然而,如果出于任何原因您不能,那么您可以尝试使用这个正则表达式:(未测试)

您可以在preg_比赛中使用它,如下所示:

src=['"]([^"]+)['"]
如果你需要一个黑客的方法,你可以修补它。我们都明白,迫切需要找到更完美的解决方案

如果您想使正则表达式更加健壮,可以使用测试正则表达式


编辑:我没有全部使用preg_match_。你可能会想用它来代替。

对我来说。您是如何使用
$res[0]
的?它的可能副本不是副本!我使用$row数组将结果转换为json字符串。所以我需要直接获得foto=src图像。您是如何使用
$res[0]
的?它的可能副本不是副本!我使用$row数组将结果转换为json字符串。所以我需要直接获取foto=src image我不需要数组结果,因为我只需要一个,然后转换成json!我不需要数组结果,因为我只需要一个,然后转换成json!
preg_match( '@src=['"]([^"]+)['"]@', $row['DESCRIZIONE'], $match);
$src = array_pop($match);