Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的通配符';s strps函数_Php_Wildcard_Strpos - Fatal编程技术网

php中的通配符';s strps函数

php中的通配符';s strps函数,php,wildcard,strpos,Php,Wildcard,Strpos,我正在寻找一些与preg\u replace或preg\u match中使用的通配符类似的strpos函数的通配符,但我找不到任何通配符,这里有一个想法: <?php if (strpos("The black\t\t\thorse", "black horse") === false) echo "Text NOT found."; else echo "Text found."; ?> 这里的想法是,结果是:找到文本。 有人知道吗?strpos()与模式不匹配,如果要匹

我正在寻找一些与
preg\u replace
preg\u match
中使用的通配符类似的
strpos
函数的通配符,但我找不到任何通配符,这里有一个想法:

<?php
if (strpos("The black\t\t\thorse", "black horse") === false)
  echo "Text NOT found.";
else
  echo "Text found.";
?>
这里的想法是,结果是:
找到文本。

有人知道吗?

strpos()与模式不匹配,如果要匹配模式,必须使用preg_match(),这应该适合您的情况

<?php
    if (preg_match('/black[\s]+horse/', "The black\t\t\thorse"))
      echo "Text found.";
    else
      echo "Text not found.";
?>

如果需要匹配的第一次出现,则可以使用PREG\u OFFSET\u CAPTURE标志:

preg_match('/black\shorse/i', "The black\t\t\thorse", $matches, PREG_OFFSET_CAPTURE);
var_dump($matches);
将导致

array(1) { [0]=> array(2) { [0]=> string(13) "black horse" [1]=> int(4) } }

如果$matches[0][1]是您的位置

您找不到它,因为它不存在,
strpos
只进行精确匹配。如果需要通配符,就必须使用正则表达式。如果需要通配符,那么为什么不使用
preg_match
呢?我使用strpos是因为我试图在一个文件中找到一个包含3行的代码块,并用另一个文本块替换,你知道一些简单的函数吗?我使用的是strpos,因为我试图在一个文件中找到一个3行的代码块,然后用另一个文本块替换,你知道一些简单的函数吗?
array(1) { [0]=> array(2) { [0]=> string(13) "black horse" [1]=> int(4) } }