Php 根据给定的起点和终点提取子串

Php 根据给定的起点和终点提取子串,php,mysql,string,substr,Php,Mysql,String,Substr,我正在尝试使用substr函数从mysql数据库的字符串getting中提取子字符串: substr($mystring,$startpoint,$endpoint); 这里的起点和终点可以是任意数字 但我并没有得到令人失望的结果。Ptart point可以工作,但端点有问题 原因是什么 编辑 当我在开始和结束点(如15和50)中时,开始点工作正常,所以结果字符串从主字符串的第15个字符开始。但端点不起作用,它给了我意义,结果字符串中的end char不是主字符串的第50位。我猜您把端点和长度

我正在尝试使用
substr
函数从mysql数据库的字符串getting中提取子字符串:

substr($mystring,$startpoint,$endpoint);
这里的起点和终点可以是任意数字

但我并没有得到令人失望的结果。Ptart point可以工作,但端点有问题

原因是什么

编辑


当我在开始和结束点(如15和50)中时,开始点工作正常,所以结果字符串从主字符串的第15个字符开始。但端点不起作用,它给了我意义,结果字符串中的end char不是主字符串的第50位。

我猜您把端点和长度弄混了。的第三个参数是字符串的长度,即从起点开始的字符数。不是最后一个字符的索引

<?php 
$str = "A short string";
echo substr($str, 2, 2); // Prints sh
echo substr($str, 2, 4); // Prints shor
?>

如果要指定终点,可以通过从起点减去起点来计算长度:

<?php
$startpoint = 2;
$endpoint = 5;
$str = "A short string";
echo substr($str, $startpoint, ($endpoint - $startpoint)); // Prints sho
?>

长度,而不是端点

字符串子字符串(字符串$string,int$start[,int$length])

这意味着:

<?php 
$text = "foobar text";
$startpoint = 0;
$endpoint = $startpoint + strlen($text);
echo substr($text, $startpoint, $endpoint);
?>

您应该减去
$endpoint-$startpoint
并将其作为第三个参数传递,以获得所需的输出

如下图所示:

substr($mystring,$startpoint,($endpoint-$startpoint));

第三个参数用于指定从起点开始的长度

但您希望在第三个参数中获取字符串till值,所以这两个参数是不同的

试试下面,它会有用的

substr($string,$startpoint,($endpoint-$startpoint));

要问原因,首先你要说明问题所在?其中是完整代码。您收到的错误是什么?您应该为我们提供更多的代码行,以便我们能够确定
$startpoing
$endpoint
的值…请更正您的英语并添加代码示例如果您阅读手册并检查第三个参数,您就会知道。只有克里斯托弗·埃利亚松知道我在问什么。你们没试着理解我的要求。在我的问题中,每件事都很清楚,你们只要等待新的广告人投反对票就行了。是的,我明白你们的意思。但是,如果要在给定的起点和终点之间获得子字符串,该怎么办。@nikhil您可以计算长度。参见我更新的示例:也谢谢。帮了我一把,汉克斯。。工作得很有魅力。
substr($string,$startpoint,($endpoint-$startpoint));