在PHP中获取两个字符串之间的内容

6
作为一个php新手,在谷歌搜索后,我仍然找不到我想要做的事情。
我已经能够在字符串中找到要提取的起始和结束位置,但大多数示例使用字符串、字符或整数来获取两个位置之间的字符串,但我找不到它。
例如: $string =“这是一个测试,试图提取”; $pos1 = 9; $pos2 = 14;
然后我就迷失了。我需要获取字符串中位置9和14之间的文本。 谢谢。
3个回答

10
$startIndex = min($pos1, $pos2);
$length = abs($pos1 - $pos2);

$between = substr($string, $startIndex, $length);

4
您可以使用 substr() 函数来提取字符串的一部分。它通过设置起始点和您要提取的长度来实现。
所以在您的情况下,可以这样做:
$string = substr($string,9,5); /* 5 comes from 14-9 */

2
<?php
$string = "This is a test trying to extract";
$pos1 = 9;
$pos2 = 14;

$start = min($pos1, $pos2);
$length = abs($pos1 - $pos2);

echo substr($string, $start - 1, $length); // output 'a test'
?>

+1 很好的发现,永远不要依赖用户界面来验证输入。 - JConstantine
$start 后面的 -1 有什么原因吗?看起来你会从他想要的位置向左拉取数据。 - Dave
我之所以加上-1,是因为作为新手,操作者可能不知道数组索引从0开始。所以她可能已经将1输入为起始位置并收到了以'h'开头的消息。也许我错误地做出了假设。 - JConstantine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接