在php字符串中找到第一个src


Find first src in php string

在给出否定回复之前请先阅读。

[et_pb_image admin_label="Image" src="https://scontent-mia1-1.xx.fbcdn.net/hphotos-xaf1/v/t1.0-9/10848034_8974277986_916022442694_n.jpg?oh=9edafcdfb85e2c1b30ed77e6fb8&oe=566091B0" show_in_lightbox="off" url="" url_new_window="off" animation="left" sticky="off" align="left" force_fullwidth="off" always_center_on_mobile="on" use_border_color="off" border_color="#ffffff" border_style="solid" /]

如何获取第一个src url?

这个不适合我

$new = preg_match('/src="(.*)|[^"]"/iS', $y->post_content, $img); 
echo '<pre>'; print_r($new); echo '</pre>';

以下操作应该可以工作:

$myString = '[et_pb_image admin_label="Image" src="https://scontent-mia1-1.xx.fbcdn.net/hphotos-xaf1/v/t1.0-9/10848034_8974277986_916022442694_n.jpg?oh=9edafcdfb85e2c1b30ed77e6fb8&oe=566091B0" show_in_lightbox="off" url="" url_new_window="off" animation="left" sticky="off" align="left" force_fullwidth="off" always_center_on_mobile="on" use_border_color="off" border_color="#ffffff" border_style="solid" /]';
if(preg_match('/src="([^"]*)/i', $myString , $img)) {
    echo '<pre>'; 
    print_r($img);
    $src = $img[1];
    echo '</pre>';
    echo '<hr />' . $src; 
}

你的代码有什么问题:

    preg_match返回一个布尔值。
  1. src="(.*)|[^"]"错误。src="正确。之后,您将匹配所有内容,直到行尾。这不是你想要的。
  2. $img应该包含你的结果。

为什么上面的工作:

/src="   # match the src
(
    [^"] # matches everything except "
*)       # capture the content between the quotes "[the src]"
/ix

你可以在这里找到一个工作版本:http://sandbox.onlinephpfunctions.com/code/c71983343308a29272d90a441486474148ab3995