检查字符串中的img src关键字

时间:2016-01-05 16:38:57

标签: php regex strpos

我有一个博客系统,用户在帖子内容中输入图片网址,如

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"> 

从那个字符串我怎么能这样做。

5 个答案:

答案 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返回指针在大海捞针处开始的位置。查看将返回值与substrhaystack组合以获取所需的子字符串。

答案 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">
)