Heim  >  Artikel  >  Backend-Entwicklung  >  PHP substr()函数的几个程序应用_PHP教程

PHP substr()函数的几个程序应用_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:33:461117Durchsuche

substr()函数介绍

substr() 函数返回字符串的一部分。

语法:substr(string,start,length)。

  • string:必需。规定要返回其中一部分的字符串。
  • start:必需。规定在字符串的何处开始。正数 - 在字符串的指定位置开始;负数 - 在从字符串结尾的指定位置开始;0 - 在字符串中的第一个字符处开始。
  • charlist:可选。规定要返回的字符串长度。默认是直到字符串的结尾。正数 - 从 start 参数所在的位置返回;负数 - 从字符串末端返回。

注释:如果 start 是负数且 length 小于等于 start,则 length 为 0。

Program List:负值的start参数

<?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 />';
?>

程序运行结果:

f
ef
d

Program List:负值的length参数

就是从start位置开始,若length为负值的话,就从字符串的末尾开始数。substr("abcdef", 2, -1)的话,就是从c开始,然后-1说明截取到e,就是要截取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 />';
?>

程序运行结果:

abcde
cde
de

Program List:基本的substr()函数用法

<?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 />';
?>

程序运行结果:

bcdef
bcd
abcd
abcdef
f
a
d
f

Program List:移除后缀

    
<?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;
?>

程序运行结果:

bkjia.jpg

Program List:太长的字符串只显示首尾,中间用省略号代替

<?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;
?>

程序运行结果:

Hellothisfileha...andthisfayl.exe

Program List:将多出的文字显示为省略号

很多时候我们需要显示固定的字数,多出的字数用省略号代替。

    
<?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; 
} 
?>

程序运行结果:

welcome to bkjia, I hope...

Program List:格式化字符串

有时候我们需要格式化字符串,比如电话号码。

  
<?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 />';
?>

程序运行结果:

+86 0756 2337788
+86 0756 23.37788
+86 0756 23.377 a

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752408.htmlTechArticlesubstr()函数介绍 substr() 函数返回字符串的一部分。 语法:substr(string,start,length)。 string:必需。规定要返回其中一部分的字符串。 start:必...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn