在给出否定回复之前请先阅读。
的
[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返回一个布尔值。
-
src="(.*)|[^"]"
错误。src="
正确。之后,您将匹配所有内容,直到行尾。这不是你想要的。 -
$img
应该包含你的结果。
为什么上面的工作:
/src=" # match the src
(
[^"] # matches everything except "
*) # capture the content between the quotes "[the src]"
/ix
你可以在这里找到一个工作版本:http://sandbox.onlinephpfunctions.com/code/c71983343308a29272d90a441486474148ab3995