Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 如何找到具有偏移量的子字符串的数字位置?_Php - Fatal编程技术网

Php 如何找到具有偏移量的子字符串的数字位置?

Php 如何找到具有偏移量的子字符串的数字位置?,php,Php,如果我想在我可以使用的文本中检查字符串的出现 strpos($some_string,“word”)返回字符串的第一个字符位置 但是如果我想在文本中搜索一个字符串在一个设定的起点和终点之间的位置,该怎么办呢 所以如果$text=“你好,我的名字是fred blogs,我住在一所房子里” 所以strpos($text,“fred”)将给出大约18 如果我有$text=“你好,我的名字是fred blogs,我还活着,我还有一个兄弟fred,还有一个叫fred的祖母” 现在我知道这个字符串中的第二个

如果我想在我可以使用的文本中检查字符串的出现

strpos($some_string,“word”)
返回字符串的第一个字符位置

但是如果我想在文本中搜索一个字符串在一个设定的起点和终点之间的位置,该怎么办呢

所以如果
$text=“你好,我的名字是fred blogs,我住在一所房子里”

所以
strpos($text,“fred”)将给出大约18

如果我有
$text=“你好,我的名字是fred blogs,我还活着,我还有一个兄弟fred,还有一个叫fred的祖母”

现在我知道这个字符串中的第二个“fred”位于位置A和B之间,那么您是否
strpos
位于这两个位置之间

strpos()
将偏移量作为第三个参数,因此您可以执行以下操作:

strpos($text, "fred", 16);

如果你知道A点和B点的位置,你可以利用它

strpos(substr($text,POINT A POSITION,POINT B POSITION),"fred");

可以使用第三个参数offset在字符串中进一步开始。要使其更具动态性,请执行以下操作:

$string = "fred";
strpos($text, $string, strpos($text, $string)+strlen($string));
这将在第一次找到后找到下一次发生的事件。

我使用嵌套的
strpos()+strlen()
作为第三个参数,使其以偏移量开始

您是否特别检查了手动和
offset
参数?作为旁注,
mysql
与此问题有何关系?为什么它被赋予了可能的最通用的名称?在本例中,Regexp具有否定的前瞻性。