Several program applications of PHP substr() function_PHP tutorial

WBOY
Release: 2016-07-13 10:33:46
Original
1158 people have browsed it

Introduction to substr() function

The substr() function returns a part of a string.

Syntax: substr(string,start,length).

  • string: required. Specifies a part of the string to be returned.
  • start: required. Specifies where in the string to begin. Positive number - starts at the specified position in the string; negative number - starts at the specified position from the end of the string; 0 - starts at the first character in the string.
  • charlist: optional. Specifies the length of the string to be returned. The default is until the end of the string. Positive number - returned from the position of the start parameter; negative number - returned from the end of the string.

Note: If start is a negative number and length is less than or equal to start, length is 0.

Program List: negative start parameter

<?php
	$rest = substr("abcdef", -1);    // returns "f"
	echo $rest.'<br />';
	$rest = substr("abcdef", -2);    // returns "ef"
	echo $rest.'<br />';
	$rest = substr("abcdef", -3, 1); // returns "d"
	echo $rest.'<br />';
?>
Copy after login

Program execution result:

f
ef
d
Copy after login

Program List: negative length parameter

starts from the start position. If length is a negative value, it starts counting from the end of the string. If substr("abcdef", 2, -1), it starts from c, and then -1 means to intercept to e, which means to intercept cde.

    
<?php
	$rest = substr("abcdef", 0, -1);  // returns "abcde"
	echo $rest.'<br />';
	$rest = substr("abcdef", 2, -1);  // returns "cde"
	echo $rest.'<br />';
	$rest = substr("abcdef", 4, -4);  // returns ""
	echo $rest.'<br />';
	$rest = substr("abcdef", -3, -1); // returns "de"
	echo $rest.'<br />';
?>
Copy after login

Program execution result:

abcde
cde
de
Copy after login

Program List: Basic substr() function usage

<?php
echo substr('abcdef', 1);     // bcdef
echo '<br />';
echo substr('abcdef', 1, 3);  // bcd
echo '<br />';
echo substr('abcdef', 0, 4);  // abcd
echo '<br />';
echo substr('abcdef', 0, 8);  // abcdef
echo '<br />';
echo substr('abcdef', -1, 1); // f
echo '<br />';
// Accessing single characters in a string
// can also be achieved using "square brackets"
$string = 'abcdef';
echo $string[0];                 // a
echo '<br />';
echo $string[3];                 // d
echo '<br />';
echo $string[strlen($string)-1]; // f
echo '<br />';
?>
Copy after login

Program execution result:

bcdef
bcd
abcd
abcdef
f
a
d
f
Copy after login

Program List: Remove suffix

    
<?php
//removes string from the end of other
function removeFromEnd($string, $stringToRemove) 
{
    // 获得需要移除的字符串的长度
	$stringToRemoveLen = strlen($stringToRemove);
	// 获得原始字符串的长度
    $stringLen = strlen($string);
    
	// 计算出需要保留字符串的长度
    $pos = $stringLen - $stringToRemoveLen;
	
    $out = substr($string, 0, $pos);
    return $out;
}
$string = 'bkjia.jpg.jpg';
$result = removeFromEnd($string, '.jpg');
echo $result;
?>
Copy after login

Program execution result:

bkjia.jpg
Copy after login

Program List: If the string is too long, only the beginning and end will be displayed, and ellipses will be used instead

<?php 
$file = "Hellothisfilehasmorethan30charactersandthisfayl.exe"; 
function funclongwords($file) 
{ 
	if (strlen($file) > 30) 
	{ 
		$vartypesf = strrchr($file,"."); 
		// 获取字符创总长度
		$vartypesf_len = strlen($vartypesf); 
		// 截取左边15个字符
		$word_l_w = substr($file,0,15); 
		// 截取右边15个字符
		$word_r_w = substr($file,-15); 
		$word_r_a = substr($word_r_w,0,-$vartypesf_len); 
		return $word_l_w."...".$word_r_a.$vartypesf; 
	} 
	else 
		return $file; 
} 
// RETURN: Hellothisfileha...andthisfayl.exe 
$result = funclongwords($file);
echo $result;
?>
Copy after login

Program execution result:

Hellothisfileha...andthisfayl.exe
Copy after login

Program List: Display extra text as ellipsis

Many times we need to display a fixed number of words, and the extra words are replaced with ellipses.

    
<?php 
$text = 'welcome to bkjia, I hope you can find something you wanted.';
$result = textLimit($text, 30);
echo $result;
function textLimit($string, $length, $replacer = '...') 
{ 
  	if(strlen($string) > $length) 
  	return (preg_match('/^(.*)\W.*$/', substr($string, 0, $length+1), $matches) ? $matches[1] : substr($string, 0, $length)) . $replacer; 
  
  	return $string; 
} 
?>
Copy after login

Program execution result:

welcome to bkjia, I hope...
Copy after login

Program List: Format string

Sometimes we need to format strings, such as phone numbers.

  
<?php
function str_format_number($String, $Format)
{
    if ($Format == '') return $String;
    if ($String == '') return $String;
    $Result = '';
    $FormatPos = 0;
    $StringPos = 0;
    while ((strlen($Format) - 1) >= $FormatPos)
	{
        //If its a number => stores it
        if (is_numeric(substr($Format, $FormatPos, 1)))
		{
            $Result .= substr($String, $StringPos, 1);
            $StringPos++;
        //If it is not a number => stores the caracter
        } 
		else 
		{
            $Result .= substr($Format, $FormatPos, 1);
        }
        //Next caracter at the mask.
        $FormatPos++;
    }
    return $Result;
}
// For phone numbers at Buenos Aires, Argentina
// Example 1:
    $String = "8607562337788";
    $Format = "+00 0000 0000000";
    echo str_format_number($String, $Format); 
	echo '<br />';
// Example 2:
    $String = "8607562337788";
    $Format = "+00 0000 00.0000000";
    echo str_format_number($String, $Format); 
	echo '<br />';
// Example 3:
    $String = "8607562337788";
    $Format = "+00 0000 00.000 a";
    echo str_format_number($String, $Format); 
	echo '<br />';
?>
Copy after login

Program execution result:

+86 0756 2337788
+86 0756 23.37788
+86 0756 23.377 a
Copy after login

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/752408.htmlTechArticlesubstr() function introduction The substr() function returns a part of a string. Syntax: substr(string,start,length). string: required. Specifies a part of the string to be returned. start: Must...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template