Javascript有两个方便的子字符串函数:substring(from,to)
和substr(start,length)
。
这意味着我可以决定“当我从位置X开始获取子字符串时,是否要指定要结束的字符串位置或子字符串长的字符数?”
(from, to
版本的一个不错用法是使用search()
来确定两个位置。)
PHP的substr()
允许您指定子字符串的长度。是否有内置的字符串函数,让您指定要结束的字符位置?
答案 0 :(得分:12)
我认为这个问题更多的是关于逻辑。您可以使用substr()
函数完成这两项工作。
例如。对于第一个substring(from, to)
:
$string = 'Foo Bar!';
$from = 2;
$to = 5;
$final_string = substr($string, $from, $to - $from);
第二个substr(start,length)
:
$string = 'Foo Bar!';
$start = 2;
$length = 5;
$final_string = substr($string, $start, $length);
答案 1 :(得分:4)
作为Nick的回答的补充,你总是可以自己编写子串函数:
function substring($string, $from, $to){
return substr($string, $from, $to - $from);
}
我还有一个带有一些类似JavaScript函数的PHP文件作为strtruncate()函数,并将它们包含在我需要的PHP脚本中。
答案 2 :(得分:2)
万一你需要一个Javascript的“子串”方法的PHP端口,这是我不得不写的一个可靠的端口:
/**
* PHP port of Javascript's "substring" function
* Author: Tubal Martin http://blog.margenn.com
* Tests: http://margenn.com/tubal/substring/
*
* @param string $str
* @param int $from index
* @param int $to index (optional)
*/
private function substring($str, $from = 0, $to = FALSE)
{
if ($to !== FALSE) {
if ($from == $to || ($from <= 0 && $to < 0)) {
return '';
}
if ($from > $to) {
$from_copy = $from;
$from = $to;
$to = $from_copy;
}
}
if ($from < 0) {
$from = 0;
}
$substring = $to === FALSE ? substr($str, $from) : substr($str, $from, $to - $from);
return ($substring === FALSE) ? '' : $substring;
}
答案 3 :(得分:0)
substr(string, start, length)
是函数link