我有一个博客系统,用户在帖子内容中输入图片网址,如
hey how are you <img src="example.com/image.png">
如果用户写得像这样
hello how are you <img src="example.com/image.png">
然后我想找到这个img
src
行并将其用作精选图片
这是我尝试过的:
$haystack = 'how are you <img src="hey.png">';
$needle = '<img src="';
if (strpos($haystack, $needle) !== false) {
echo "$needle";
}
else { echo "no"; }
当我回声时我才得到:
<img src="
我想要完整
<img src="hey.png">
从那个字符串我怎么能这样做。
答案 0 :(得分:4)
这应该适合你:
Array
(
[0] => <img src="example.com/image.png">
[1] => <img src="example.com/image2.png">
)
输出:
img
你应该考虑使用解析器。它们已经内置了比正则表达式更多的功能,并且会使错误更清晰。
Regex101:search it
或者如果你真的只想要第一个preg_match
只使用<?php
$string = 'hey how are you <img src="example.com/image.png"> test test <img src="example.com/image2.png">';
preg_match('/(<img .*?>)/', $string, $img_tag);
echo $img_tag[1];
。
<img src="example.com/image.png">
输出:
@RequestMapping(value = "/result", method = RequestMethod.GET)
public String defaultView(Model model) {
Iterable<Request> request = requestRepository.findAll();
model.addAttribute("requests", request);
Gson gson = new Gson();
String json = gson.toJson(request);
System.out.println(json);
model.addAttribute("jsonProducts", json);
return "form/result";
}
答案 1 :(得分:0)
strpos
返回指针在大海捞针处开始的位置。查看将返回值与substr
和haystack
组合以获取所需的子字符串。
答案 2 :(得分:0)
由于图像src是一个未知的,使用正则表达式,类似这样(我的头顶,所以它可能是不正确的语法):
$string = "hey how are you <img src=\"example.com/image.png\">";
$return = preg_match('/src="([^"]+)"/', '$string', $matches);
答案 3 :(得分:0)
您可以使用正则表达式来匹配该字符串。我离开php已经很久了......所以它就像下面这样:
<?php
$pattern = '/<img\ssrc\=".*?">/';
$haystack = 'how are you <img src="hey.png">';
preg_match($pattern, $haystack, $matches);
print_r($matches);
?>
结果将是
Array
(
[0] => <img src="hey.png">
)
查看preg_match()了解详情。
答案 4 :(得分:0)
使用Regular Expression (RegEx)时,这很容易。
这是一个简单的例子:
$string = 'hey how are you <img src="example.com/image.png"> blah blah';
preg_match('/<img src=".*">/', $string, $matches);
print_r($matches);
哪个会给你一个像这样的数组:
Array
(
[0] => <img src="example.com/image.png">
)