PHP:使用preg_match搜索字符串中的子字符串?

nub*_*bme 0 php search substring preg-match

我试图创建一个函数来检查PHP中字符串中的子字符串.

public static function stringCheck ($string, $substring) {
  $patern = "/".$substring."/";

  if (preg_match($substring, string) {
    return true;
  }
  else return false;
}
Run Code Online (Sandbox Code Playgroud)

但如果我输入preg_match中使用的特殊字符(^.[$()|*+?{),它会搞砸搜索.

我试过类似下面的代码但是没有用

$speicalChar = '/(\^|\.|\[|\$|\(|\)|\*|\+|\?|\{|\\)/';
Run Code Online (Sandbox Code Playgroud)

任何人都有解决方案或者替代preg_match.请记住,我也希望能够检查符号.我尝试使用strstr,但有符号问题.

谢谢=]

Bol*_*ock 5

$pattern = '/' . preg_quote($substring, '/') . '/';
Run Code Online (Sandbox Code Playgroud)

这为你逃脱了特殊的角色.也传入,'/'所以它也被转义,因为你将它用作分隔符.

另一件事,修复你的if条件中的一些拼写错误:

if (preg_match($pattern, $string)) {
Run Code Online (Sandbox Code Playgroud)