[整理]php常用函数及运用场景----字符串函数str
场景一: 要将带下划线数据表名转成大驼峰法
例:member_login_log 转 MemberLoginLog
$modelName =implode(array_map("ucfirst" , explode("_"
, "member_login_log")));
explode : 将字符串根据特定字符分割,结果得到一个数组
ucfirst : 将字符串第一个字符改大写
array_map :将函数作用到数组中的每个值上,并返回带有新值的数组
implode : 把数组元素组合为字符串
把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":
<?php echo str_replace("world","Shanghai","Hello world!"); ?>
$search = ["__CONTROLLER__","__MODEL__","__PK_FIELD__"]; $replace = [$controllerName,$modelName,$pkField]; $template = APP_PATH."Back/Code/controller.template"; $content = file_get_contents($template); $content = str_replace($search,$replace,$content); $controllerFile = APP_PATH . "Back/Controller/" . $controllerName . "Controller.class.php"; file_put_contents($controllerFile, $content);说明:
上例代码是将代码模板字符串替换,并保存为.php文件
file_get_contents() 函数把整个文件读入一个字符串中
file_put_contents() 函数把一个字符串写入文件中。[ 与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。]
(PHP 4, PHP 5)
preg_split — 通过一个正则表达式分隔字符串
说明
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int$flags = 0 ]] )通过一个正则表达式分隔给定字符串.
参数
- pattern
-
用于搜索的模式, 字符串形式.
- subject
-
输入字符串
- limit
-
如果指定, 将限制分隔得到的子串最多只有limit个, 返回的最后一个 子串将包含所有剩余部分.limit值为-1, 0或null时都代表"不限制", 作为php的标准, 你可以使用null跳过对flags的设置.
- flags
-
flags可以是任何下面标记的组合(以位或运算|组合):
- PREG_SPLIT_NO_EMPTY
- 如果这个标记被设置, preg_split()将进返回分隔后的非空部分.
- PREG_SPLIT_DELIM_CAPTURE
- 如果这个标记设置了, 用于分隔的模式中的括号表达式将被捕获并返回.
- PREG_SPLIT_OFFSET_CAPTURE
-
如果这个标记被设置, 对于每一个出现的匹配返回时将会附加字符串偏移量. 注意: 这将会改变返回数组中的每一个元素, 使其每个元素成为一个由第0 个元素为分隔后的子串, 第1个元素为该子串在subject 中的偏移量组成的数组.
返回值
返回一个使用pattern边界分隔subject后得到 的子串组成的数组.
//使用回车作为分隔符,把传递来的选项字符串分隔成数组 preg_splist("/ | /" , $_POST["option_list"]); |
/*
*/
实例
填充字符串的右侧,到 30 个字符的新长度:
<?php $str = "Hello World"; echo str_pad($str,30,"."); ?>运行结果: Hello World...................
定义和用法
str_pad() 函数把字符串填充为新的长度。返回值:返回被填充的字符串.
语法
str_pad(string,length,pad_string,pad_type)
参数 | 描述 |
---|---|
string | 必需。规定要填充的字符串。 |
length | 必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。 |
pad_string | 可选。规定供填充使用的字符串。默认是空白。 |
pad_type |
可选。规定填充字符串的哪边。 可能的值:
|
把字符串 "Shanghai " 重复 5 次:
<?php echo str_repeat("Shanghai",5); ?>
定义和用法
str_repeat() 函数把字符串重复指定的次数。
语法
str_repeat(string,repeat)
参数 | 描述 |
---|---|
string | 必需。规定要重复的字符串。 |
repeat | 必需。规定字符串将被重复的次数。必须大于等于 0。 |
场景:
无限级分类时用生成层次;例如 {:str_repeat(" ",$row["deep"]*4)}从字符串中返回 "world":
<?php echo substr("Hello world",6); ?>
定义和用法
substr() 函数返回字符串的一部分。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
语法
substr(string,start,length)
参数 | 描述 |
---|---|
string | 必需。规定要返回其中一部分的字符串。 |
start |
必需。规定在字符串的何处开始。
|
length |
可选。规定被返回字符串的长度。默认是直到字符串的结尾。
|
场景:
用在url 路由截取.实例
把数组元素组合为字符串:
<?php $arr = array("Hello","World!","I","love","Shanghai!"); echo implode(" ",$arr); ?>
定义和用法
implode() 函数返回由数组元素组合成的字符串。
注释:implode() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。
注释:implode() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。
注释:该函数是二进制安全的。
语法
implode(separator,array)
参数 | 描述 |
---|---|
separator | 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。 |
array | 必需。要组合为字符串的数组。 |
技术细节
返回值: | 返回由数组元素组合成的字符串。 |
PHP 版本: | 4+ |
更新日志: | 在 PHP 4.3.0 中,separator 参数变成可选的。 |
持续更新,未完待续!