JavaScript has two handy substring functions: substring(from,to)
and substr(start,length)
.
This means I can decide "when I get my substring starting from position X, do I want to specify what string position to end on or how many characters long the substring is?"
(One nice usag开发者_JAVA技巧e of the from, to
version is to use search()
to determine both positions.)
PHP's substr()
lets you specify the length of the substring. Is there a built-in string function to let you specify the character position to end on?
I think this question is more about logic. You can accomplish both with the substr()
function.
For instance. for the First substring(from, to)
:
$string = 'Foo Bar!';
$from = 2;
$to = 5;
$final_string = substr($string, $from, $to - $from);
And the second substr(start,length)
:
$string = 'Foo Bar!';
$start = 2;
$length = 5;
$final_string = substr($string, $start, $length);
As an addition to Nick's answer, you can always write the substring function yourself:
function substring($string, $from, $to){
return substr($string, $from, $to - $from);
}
I also have a PHP file with some JavaScript like function as the strtruncate() function and include them to the PHP script I need them for.
Just in case you need a PHP port of JavaScript's "substring" method here's a reliable port I had to write time ago:
/**
* 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;
}
substr(string, start, length)
is a standard usage of the function link
精彩评论