从发布的内容中获取特色图片
Get Featured image from Posted Content
我有一个博客系统,用户在 post 内容中输入图像 url,例如 ->
hey how are you <img src="www.example.com/image.png" style="height=100px;">
然后我想找到这个 [img src] 行并将它用作这样的特色图像-> www.example.com/image.png
这是我尝试过的:
$content 是从表单发布的内容
preg_match('/(<img .*?>)/', $content, $img_tag);
$feature = $img_tag[0]; // This preg_match finds img src tag and provide me
$regex = '~<img.*?src=[\'"](?:view-source:)?([^"\']+).*?\/?>~';
$featured = preg_replace($regex, "", $feature);
谁能解决这里的问题?
如果您尝试提取内容中第一个 <img>
标签的 src
属性,您只需要:
preg_match_all('/<img.*src="(.*)"/', $content, $matches);
$featured = isset($matches[1][0]) ? $matches[1][0] : null;
现在让我解释一下这里发生的事情:
preg_match_all
匹配整个字符串,而 preg_match
停在第一行,除非您添加 s
修饰符。
对于$matches
数组,第一个索引代表匹配组。匹配组的个数是从表达式开始到组的(
个数。 0
匹配整个表达式。所以$matches[1]
代表src
参数内匹配组的结果。
从该数组中,我们获取第一个元素,即内容中第一个匹配 img
标记的 src
属性。
当然,内容中不一定要有任何图像,这就是为什么您应该在尝试访问结果之前调用 isset
。
我希望这能解释清楚。
我有一个博客系统,用户在 post 内容中输入图像 url,例如 ->
hey how are you <img src="www.example.com/image.png" style="height=100px;">
然后我想找到这个 [img src] 行并将它用作这样的特色图像-> www.example.com/image.png
这是我尝试过的: $content 是从表单发布的内容
preg_match('/(<img .*?>)/', $content, $img_tag);
$feature = $img_tag[0]; // This preg_match finds img src tag and provide me
$regex = '~<img.*?src=[\'"](?:view-source:)?([^"\']+).*?\/?>~';
$featured = preg_replace($regex, "", $feature);
谁能解决这里的问题?
如果您尝试提取内容中第一个 <img>
标签的 src
属性,您只需要:
preg_match_all('/<img.*src="(.*)"/', $content, $matches);
$featured = isset($matches[1][0]) ? $matches[1][0] : null;
现在让我解释一下这里发生的事情:
preg_match_all
匹配整个字符串,而 preg_match
停在第一行,除非您添加 s
修饰符。
对于$matches
数组,第一个索引代表匹配组。匹配组的个数是从表达式开始到组的(
个数。 0
匹配整个表达式。所以$matches[1]
代表src
参数内匹配组的结果。
从该数组中,我们获取第一个元素,即内容中第一个匹配 img
标记的 src
属性。
当然,内容中不一定要有任何图像,这就是为什么您应该在尝试访问结果之前调用 isset
。
我希望这能解释清楚。