PHP函数参考24-常用字符串函数
-
addslashes — 使用反斜线引用字符串
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
注意:PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。 遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
-
bin2hex — 函数把包含数据的二进制字符串转换为十六进制值
-
hex2bin — 转换十六进制字符串为二进制字符串
-
chop — rtrim 的别名
-
chr — 返回指定的字符
返回相对应于 ascii 所指定的单个字符。
此函数与 ord() 是互补的。
-
ord — 转换字符串第一个字节为 0-255 之间的值
-
convert_uuencode — 使用 uuencode 编码一个字符串
convert_uuencode() 使用 uuencode 算法对一个字符串进行编码。
uuencode 算法会将所有(含二进制数据)字符串转化为可输出的字符,并且可以被安全的应用于网络传输。使用 uuencode 编码后的数据将会比源数据大35%左右。
用法同base64_encode,可以用于对二进制数据的编码。
-
convert_uudecode — 解码一个 uuencode 编码的字符串
-
count_chars — 返回字符串所用字符的信息
count_chars( string $string[, int $mode = 0] ) : mixed
统计 string 中每个字节值(0..255)出现的次数,使用多种模式返回结果。
mode参数:
0 - 以所有的每个字节值作为键名,出现次数作为值的数组。
1 - 与 0 相同,但只列出出现次数大于零的字节值。
-
crc32 — 计算一个字符串的 crc32 多项式
生成 str 的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。
-
crypt — 单向字符串散列
password_hash()使用了一个强的哈希算法,来产生足够强的盐值,并且会自动进行合适的轮次。password_hash()是crypt()的一个简单封装,并且完全与现有的密码哈希兼容。推荐使用password_hash()。
-
echo — 输出一个或多个字符串
-
explode — 使用一个字符串分割另一个字符串
-
implode — 将一个一维数组的值转化为字符串
explode与implode目前尽量按照分割符参数在前,字符串或数组在后
注意:implode第一个参数分隔符可以忽略,也就是只有一个参数数组时,会默认使用空字符作为分隔符连接字符串。
implode( string $glue, array $pieces) : string
implode( array $pieces) : string
注意:join函数是implode的别名
-
get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 后的转换表
返回 htmlspecialchars() 和 htmlentities() 处理后的转换表。
在很多自有框架中,我们常会看到内部都有一个函数是用于手动替换html特殊符号的,其实php自身带了一个函数可以提供html特殊符号的函数,不需要我们手动保存更新:
print_r(get_html_translation_table(HTML_ENTITIES,ENT_COMPAT|ENT_QUOTES));
Array ( ["] => " [&] => & ['] => ' [<] => < [>] => > [ ] => [¡] => ¡ [¢] => ¢ [£] => £ [¤] => ¤ [¥] => ¥ [¦] => ¦ [§] => § [¨] => ¨ [©] => © [ª] => ª [«] => « [¬] => ¬ ...
-
htmlentities — 将字符转换为 HTML 转义字符
本函数各方面都和 htmlspecialchars() 一样,除了 htmlentities() 会转换所有具有 HTML 实体的字符。
-
html_entity_decode — Convert HTML entities to their corresponding characters
htmlentities 的反向解码操作。
-
htmlspecialchars — 将特殊字符转换为 HTML 实体
通过get_html_translation_table函数可以知道,只有5个特殊符号被定义为htmlspecialchars:
["] => " [&] => & ['] => ' [<] => < [>] => >
-
htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
htmlspecialchars的反向解析操作。
-
lcfirst — 使一个字符串的第一个字符小写
-
ucfirst — 将字符串的首字母转换为大写
-
ucwords — 将字符串中每个单词的首字母转换为大写
ucwords( string $str[, string $delimiters = " \t\r\n\f\v" ] ) : string
可选的 delimiters,包含了单词分割字符。
$foo = 'hello|world!'; $bar = ucwords($foo); // Hello|world! $baz = ucwords($foo, "|"); // Hello|World!
-
levenshtein — 计算两个字符串之间的编辑距离
-
md5_file — 计算指定文件的 MD5 散列值
-
md5 — 计算字符串的 MD5 散列值
由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。如果用于创建密码哈希值,建议使用password_hash() - 创建密码的散列(hash)
-
metaphone — 计算str的变音键
与soundex()类似,metaphone为发音相似的单词创建相同的键。它比soundex()更准确,因为它知道英语发音的基本规则。变音位生成的键是可变长度的。
-
money_format — 将数字格式化成货币字符串
-
nl2br — 在字符串所有新行之前插入 HTML 换行标记
在字符串 string 所有新行之前插入 ‘<br />’ 或 ‘<br>’,并返回。 可以理解为将\r\n替换成html换行标签<br />
-
number_format — 以千位分隔符方式格式化一个数字
-
parse_str — 将字符串解析成多个变量
parse_str( string $encoded_string[, array &$result] ) : void
如果 encoded_string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。
注意:我们强烈建议一定要带第二个参数result,变量将会以数组元素的形式存入到这个数组。该函数没有返回值,将由result作为替代
$str = "first=value&arr[]=foo+bar&arr[]=baz"; // 推荐用法 parse_str($str, $output); echo $output['first']; // value echo $output['arr'][0]; // foo bar echo $output['arr'][1]; // baz // 不建议这么用 parse_str($str); echo $first; // value echo $arr[0]; // foo bar echo $arr[1]; // baz
-
print — 输出字符串
print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。
和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。
还是用echo吧。
-
printf — 输出格式化字符串
-
sprintf — 输出格式化字符串
可以理解为模板化输出。
$num = 5; $location = 'tree'; $format = 'There are %d monkeys in the %s'; echo sprintf($format, $num, $location);//There are 5 monkeys in the tree
更多模板格式化符号详见官方文档。
-
quotemeta — 转义元字符集
返回 在下面这些特殊字符前加 反斜线() 转义后的字符串。这些特殊字符包含:
. \ + * ? [ ^ ] ( $ )
-
setlocale — 设置地区信息
-
sha1 — 计算字符串的 sha1 散列值
由于此函数依赖的算法已不足够复杂,不推荐使用此函数对明文密码加密。
-
sha1_file — 计算文件的 sha1 散列值 与md5_file相似,但算法不一样。该散列值是一个 40 字符长度的十六进制数字。 md5_file返回32字符长度的16进制数字。
-
similar_text — 计算两个字符串的相似度
两个字符串的相似程度计算依据 Programming Classics: Implementing the World’s Best Algorithms by Oliver (ISBN 0-131-00413-1) 的描述进行。注意该实现没有使用 Oliver 虚拟码中的堆栈,但是却进行了递归调用,这个做法可能会导致整个过程变慢或变快。也请注意,该算法的复杂度是 O(N**3),N 是最长字符串的长度。
similar_text( string $first, string $second[, float &$percent] ) : int
通过引用方式传递第三个参数,similar_text() 将计算相似程度百分数。
注意:返回值是两个字符串中匹配字符的数目。而我们通常要的是相似度百分数,也就是第三个参数percent。
-
soundex — Calculate the soundex key of a string
Soundex键具有发音相似的单词会产生相同的Soundex键的属性,因此可以用来简化在你知道发音但不知道拼写的数据库中的搜索。这个soundex函数返回一个以字母开头的4个字符的字符串。
-
sscanf — 根据指定格式解析输入的字符
-
str_getcsv — 解析 CSV 字符串为一个数组
以 CSV 字段格式解析字符串输入,并返回包含读取字段的数组。
-
str_replace — 子字符串替换
str_replace( mixed $search, mixed $replace, mixed $subject[, int &$count] ) : mixed
如果 search 和 replace 为数组,那么 str_replace() 将对 subject 做二者的映射替换。如果 replace 的值的个数少于 search 的个数,多余的替换将使用空字符串来进行。如果 search 是一个数组而 replace 是一个字符串,那么 search 中每个元素的替换将始终使用这个字符串。该转换不会改变大小写。
如果 search 和 replace 都是数组,它们的值将会被依次处理。
$phrase = "You should eat fruits, vegetables, and fiber every day."; $healthy = ["fruits", "vegetables", "fiber"]; $yummy = ["pizza", "beer", "ice cream"]; $newphrase = str_replace($healthy, $yummy, $phrase); print_r($newphrase);//You should eat pizza, beer, and ice cream every day
如果search和replace参数都是数组的时候,需要注意一个先后查找替换问题,一个特殊的范例:
$letters = array('a', 'p'); $fruit = array('apple', 'pear'); $text = 'a p'; $output = str_replace($letters, $fruit, $text); echo $output; // 由于先查找了字符a,替换成apple,之后再查找字符p,再将替换后的apple的两个p字符又替换成pear // 输出: apearpearle pear
-
str_ireplace — str_replace 的忽略大小写版本
-
str_pad — 使用另一个字符串填充字符串为指定长度
str_pad( string $input, int $pad_length[, string $pad_string = " "[, int $pad_type = STR_PAD_RIGHT]] ) : string
支持左右填充指定字符,并指定长度,默认STR_PAD_RIGHT向右填充。
注意:如果填充字符的长度不能被 pad_string 整除,那么 pad_string 可能会被缩短。
官方范例:
$input = "Alien"; echo str_pad($input, 10); // 输出 "Alien " echo str_pad($input, 10, "-=", STR_PAD_LEFT); // 输出 "-=-=-Alien" echo str_pad($input, 10, "_", STR_PAD_BOTH); // 输出 "__Alien___" echo str_pad($input, 6, "___"); // 输出 "Alien_" echo str_pad($input, 3, "*"); // 输出 "Alien"
-
str_repeat — 重复一个字符串
str_repeat( string $input, int $multiplier) : string
返回 字符串input 重复 multiplier 次后的结果字符串。
echo str_repeat("-=", 5); //-=-=-=-=-=
-
str_rot13 — 对字符串执行 ROT13 转换
在比较旧的php代码中我们也会看一些借鉴str_rot13的加密算法,可以用来混淆。可能混淆算法不一定采用之后的第13个字符替换法。
ROT13 编码简单地使用字母表中后面第 13 个字母替换当前字母,同时忽略非字母表中的字符。编码和解码都使用相同的函数,传递一个编码过的字符串作为参数,将得到原始字符串。
echo str_rot13("Tsing1");//Gfvat1 echo str_rot13("Gfvat1");//Tsing1
-
str_shuffle — 随机打乱一个字符串
每次返回都是随机的,不一样的字符串
-
str_split — 将字符串转换为数组
将一个字符串转换为数组,如果第二个参数默认是1时,返回的就是字符数组,字符串的每个字符就是数组中的一个元素。
第二参数是将返回的数组的每个元素的长度,比如设置为3,则返回的数组中的每个元素都是长度为3的字符串。
$str = "Hello Friend"; $arr1 = str_split($str); $arr2 = str_split($str, 3); //print_r($arr1); print_r($arr2);
输出:
Array ( [0] => Hel [1] => lo [2] => Fri [3] => end )
-
str_word_count — 返回字符串中单词的使用情况
-
strcmp — 二进制安全字符串比较
如果 str1 小于 str2 返回 < 0;如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
注意:该函数不是人习惯的自然排序算法,可以考虑使用strnatcmp的字符串比较函数。
-
strcasecmp — 二进制安全比较字符串(不区分大小写)
-
strncmp — 二进制安全比较字符串开头的若干个字符
-
strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写)
-
strip_tags — 从字符串中去除 HTML 和 PHP 标记
该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。
注意:由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数据被删除。
-
stripslashes — 反转义一个使用类似使用addslashes 转义的字符串
-
strpos — 查找字符串首次出现的位置
strpos( string $haystack, mixed $needle[, int $offset = 0] ) : int
在字符串$haystack中查找字符$needle,返回needle在haystack中首次出现的数字位置。
needle:建议一定要是字符串。
offset:如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。如果是负数,搜索会从字符串结尾指定字符数开始。
返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。如果没找到 needle,将返回 FALSE。
注意:strpos的参数顺序,和explode等其他字符串函数不大一样,strpos第一个参数是完整字符串,第二个参数needle是用于查找的子串或字符。
-
stripos — 查找字符串首次出现的位置(不区分大小写)
-
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
注意:区别于strpos指定字符在目标字符串最后一次出现的位置。
-
strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
-
strstr — 查找字符串的首次出现,并返回第一次出现的位置开始到结尾的字符串
strstr( string $haystack, mixed $needle[, bool $before_needle = FALSE] ) : string
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
注意:strchr函数是strstr的别名函数
$url = 'http://www.9ong.com'; $domain = strstr($url, '//'); echo $domain; // 输出://www.9ong.com
-
stristr — strstr 函数的忽略大小写版本
-
strrchr — 查找指定字符在字符串中的最后一次出现
该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。
注意:该函数对应正向函数是strchr也就是strstr,如果strrchr函数的needle参数包含不止一个字符,仅使用第一个字符。该参数行为不同于strstr函数。
注意:如果 needle 不是一个字符串,那么将被转化为整型并被视为字符顺序值。
$nl = chr(10);//\n ASCII echo nl2br($nl); $text = "Line 1\nLine 2\nLine 3"; $last = substr(strrchr($text, 10), 1 ); echo $last; //输出: //<br /> //Line 3
-
strlen — 获取字符串长度
-
strnatcmp — 使用自然排序算法比较字符串
该函数实现了以人类习惯对数字型字符串进行排序的比较算法,这就是"自然顺序”。
返回值:与其他字符串比较函数类似,如果 str1 小于 str2 返回 < 0;如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。
-
strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写)
-
strpbrk — 在字符串中查找一组字符的任何一个字符
返回一个以找到的字符开始的子字符串。如果没有找到,则返回 FALSE。
-
strrev — 反转字符串
hello反转后就是:olleh
-
strtok — 标记分割字符串
返回值类似于一个迭代器。如果不熟悉使用方式,分割字符串建议使用explode、preg_split。注意:split已经不再建议使用,而str_split不支持指定分隔字符(串),是将字符串按单个字符分隔转换成字符数组。
$string = "This is\tan example\nstring"; /* 使用制表符和换行符作为分界符 */ $tok = strtok($string, " \n\t"); while ($tok !== false) { echo "Word=$tok\n"; $tok = strtok(" \n\t"); }
输出:
Word=This Word=is Word=an Word=example Word=string
-
strtolower — 将字符串转化为小写
-
strtoupper — 将字符串转化为大写
-
strtr — 转换指定字符,可用于实现字符串替换,类似于str_replace,但又更简洁实用
函数支持两种方式:
strtr( string $str, string $from, string $to) : string strtr( string $str, array $replace_pairs) : string
该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。比如, $from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的字符串位移(offset),通俗点说就是字符串数组的下标。
如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。
如果给出两个参数,第二个参数应该是array形式的数组(‘from’ => ‘to’,…)。返回值是一个字符串,其中所有出现的数组键都被相应的值所替换。最长的键将首先尝试。一旦子字符串被替换,它的新值将不再被搜索,这个是有区别于str_replace前两个参数都是数组的形式,str_replace会有先后替换顺序。
echo strtr("baab", "ab", "01"),"\n"; $trans = array("ab" => "01"); echo strtr("baab", $trans),"\n"; $trans = array("a" => "apple","p"=>"pear"); echo strtr("a p", $trans),"\n"; echo str_replace(["a","p"], ["apple",'pear'], 'a p'),"\n";
输出:
1001 ba01 apple pear apearpearle pear
-
substr — 返回字符串的子串
substr( string $string, int $start[, int $length] ) : string
-
start
如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。
如果 string 的长度小于 start,将返回 FALSE。
-
length
如果没有提供 length,默认返回的子字符串将从 start 位置开始直到字符串结尾。
如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。
如果提供了负数的 length,那么 string 末尾处的 length 个字符将会被省略。
如果提供了值为 0,FALSE 或 NULL 的 length,那么将返回一个空字符串。
echo substr("abcdef", -2),"\n"; // 返回 "ef" echo substr("abcdef", -3, 1),"\n"; // 返回 "d" echo substr("abcdef", 0, -1),"\n"; // 返回 "abcde" 忽略末尾1个字符f echo substr("abcdef", 2, -1),"\n"; // 返回 "cde" 忽略末尾1个字符f echo substr("abcdef", 2, -4),"\n"; // 返回 "" echo substr("abcdef", -3, -2),"\n"; // 返回 "d" 忽略末尾2个字符ef
-
-
substr_count — 计算子串出现的次数
substr_count( string $haystack, string $needle[, int $offset = 0[, int $length]] ) : int
注意:该函数不会计算重叠字符串;函数还支持offset,即从哪里开始查找计算;函数支持length,即查找到哪里;
$text = 'This is a test'; echo substr_count($text, 'is'),"\n"; // 2 $test = "xxxxx"; echo substr_count($test, "xx"),"\n";//2
-
substr_replace — 替换字符串的子串
substr_replace( mixed $string, mixed $replacement, mixed $start[, mixed $length] ) : mixed
通俗上说,先通过start与length截取字符串中的子串,然后再将子串替换成replacement。相当于substr+replace的功能。start与length参考substr函数。
$var = "-tsingchan-"; //将9ong插入到 $var 的开头处 echo substr_replace($var, '9ong', 0, 0) . "\n";//9ong-tsingchan- //下面两个例子使用9ong替换 $var 中的 chan echo substr_replace($var, '9ong', 6, -1) . "\n";//-tsing9ong- echo substr_replace($var, '9ong', -5, -1) . "\n";//-tsing9ong- //从 $var 中删除chan echo substr_replace($var, '', 6, -1) . "\n";//-tsing-
-
substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)
截取子串后,再进行比较字符串,但不是自然排序的比较。
-
trim — 去除字符串首尾处的空白字符(或者其他字符)
trim( string $str[, string $character_mask = " \t\n\r\0\x0B"] ) : string
trim很简单,但又不是那么简单,主要看第二个参数character_mask:
character_mask是可选参数,过滤字符也可由 character_mask 参数指定。一般要列出所有希望过滤的字符,也可以使用 “..” 列出一个字符范围。
首先,character_mask默认过滤空白符,包含空格、制表符、换行符、回车符等空白符;
其次,可以自定义character_mask字符,注意如果设置的是一个字符串(多字符),那么每个字符都会按trim的规则首尾检查并对应过滤,而不是过滤一个字符串;
最后,character_mask参数支持..来包含一个字符范围,比如我们常用的ASCII控制符范围。
官方文档例子:
$text = "\t\tThese are a few words :) ... "; $binary = "\x09Example string\x0A"; $hello = "Hello World"; //var_dump($text, $binary, $hello); $trimmed = trim($text); echo $trimmed,"\n";//These are a few words :) ... $trimmed = trim($text, " \t.");//注意:尾巴的三个.字符都被过滤 echo $trimmed,"\n";//These are a few words :) $trimmed = trim($hello, "Hdle");//注意:不是简单的过滤Hdle字符串,而4个字符H d l e一一在首尾检查并过滤 echo ($trimmed),"\n";//o Wor // 清除 $binary 首位的 ASCII 控制字符 // (包括 0-31) $clean = trim($binary, "\x00..\x1F");//支持..范围检查过滤 echo $clean,"\n";//Example string
-
ltrim — 删除字符串开头的空白字符(或其他字符)
同trim,只是去除字符串左侧(首部)的指定字符。
-
rtrim — 删除字符串末端的空白字符(或者其他字符)
同trim,只是去除字符串右侧(尾部)的指定字符。
-
vprintf — 输出格式化字符串
vprintf( string $format, array $args) : int
根据 format (sprintf() 函数文档中有相关描述)参数指定的格式,在一个格式化字符串中显示多个值。
作用与 printf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数。
vprintf("%04d-%02d-%02d", explode('-', '2020-1-1')); // 2020-01-01
-
vsprintf — 返回格式化字符串
vsprintf( string $format, array $args) : string
注意是返回,而不是直接输出。
作用与 sprintf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数。
作用于vprintf一样,但不直接输出而是返回字符串。
echo vsprintf("%04d-%02d-%02d", explode('-', '2020-1-1')); // 2020-01-01
-
vfprintf — 将格式化字符串写入流
向由 handle 指定的流资源句柄中写入根据 format 格式化后的字符串。 同vprintf,但多了个参数handle,是输出写入流。
vfprintf( resource $handle, string $format, array $args) : int
-
关于格式化字符串说明符
% 文字百分比字符。不需要任何参数。 b 该参数被视为整数,并以二进制数表示。 c 该参数被视为整数,并以该ASCII形式显示为字符。 d 该参数被视为整数,并以(有符号的)十进制数表示。 e 该论点被视为科学记数法(例如1.2e + 2)。精度说明符表示自PHP 5.2.1起小数点后的位数。在早期版本中,它被视为有效数字(少一位)。 E 类似于说明e符,但使用大写字母(例如1.2E + 2)。 f 该参数被视为浮点数,并显示为浮点数(可识别语言环境)。 F 该参数被视为浮点数,并被表示为浮点数(不支持区域设置)。自PHP 5.0.3起可用。 o 该参数被视为整数,并以八进制数表示。 s 该参数被视为字符串显示。 u 该参数被视为整数,并以无符号十进制数形式出现。 x 该参数被视为整数,并以十六进制数字(带有小写字母)的形式呈现。 X 该参数被视为整数,并以十六进制数字(带有大写字母)的形式呈现。
-
wordwrap — 打断字符串为指定数量的字串
wordwrap( string $str[, int $width = 75[, string $break = "\n"[, bool $cut = FALSE]]] ) : string
通过指定width宽度智能打断字符串,插入break符号,比如换行符。看函数名wordwrap,有接触过css就大概知道函数的功能了,css的word-wrap属性:允许长单词换行到下一行,达到自动换行的效果。
如果 参数cut 设置为 TRUE,字符串总是在指定的 width 或者之前位置被打断。因此,如果有的单词宽度超过了给定的宽度,它将被分隔开来。(参见第二个范例)。当它是 FALSE ,函数不会分割单词,哪怕 width 小于单词宽度。
$text = "A very long woooooooooooooooooord. and something"; $cut = false; $newtext = wordwrap($text, 9, "\n", $cut); echo "$newtext\n";
输出:
//如果cut为 false 则: A very long woooooooooooooooooord. and something
//如果cut为 true 则: A very long woooooooo ooooooooo ord. and something