php基础-字符串整理(二)
2020-03-23 09:20:18 来源:admin 点击:895
PHP strlen() 函数
strlen() 函数返回字符串的长度,以字符计。
下例返回字符串 "Hello world!" 的长度:
<?php
echo strlen("Hello world!");
?>
自己实现一个字符串反转函数
function str_rev($str)
{
//先获取字符串长度
for($i=0;true;$i++)
{
if(!isset($str[$i]))
{
break;
}
}
//倒着循环
$return = '';
for($j=$i-1;$j>=0;$j--)
{
$return .= $str[$j];
}
return $return;
}
echo str_rev('abcdefg');
自己实现一个数组合并函数
<?php
// array_mer($arr1, $arr2, $arr3, ...... $arrn)
//
function array_mer()
{
$return = [];
$arrays = func_get_args();
foreach($arrays as $arr)
{
if (is_array($arr))
{
foreach($arr as $val)
{
$return[] = $val;
}
}
}
return $return;
}
var_dump(array_mer([1], [1,2], [3, 4]));
自己实现一个首字母大写的函数
function strHandle($str)
{
$return = '';
$arr = explode('_', $str);
foreach($arr as $val)
{
$return .= ucfirst($val);
}
return $return;
}
echo strHandle('make_by_id');
PHP addslashes() 函数
实例
在每个双引号(")前添加反斜杠:
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。
注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
<?php
$str = addslashes('Shanghai is the "biggest" city in China.');
echo($str);
?>
Bin2hex()/hex2bin
把一个字符串值从二进制转换为十六进制,再转换回去:
<?php
$str = "Shanghai";
echo bin2hex($str) . "<br>";
echo pack("H*",bin2hex($str)) . "<br>";
?>
Chop(string,charlist)
移除字符串右侧的换行符(\n):
如果 charlist 参数为空,则移除以下字符:
"\0" - NULL
"\t" - 制表符
"\n" - 换行
"\x0B" - 垂直制表符
"\r" - 回车
" " - 空格
<?php
$str = "Hello World!\n\n";
echo $str;
echo chop($str);
?>
加减码字符串
编码字符串,然后对它进行解码:
<?php
$str = "Hello world!";
// 对字符串进行编码
$encodeString = convert_uuencode($str);
echo $encodeString . "<br>";
// 对字符串进行解码
$decodeString = convert_uudecode($encodeString);
echo $decodeString;
?>
数组转字符串 explode(字符,字符串), explode(separator,string,limit)
limit可选。规定所返回的数组元素的数目。
可能的值:
· 大于 0 - 返回包含最多 limit 个元素的数组
· 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
· 0 - 返回包含一个元素的数组
<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>
<?php
$str = 'one,two,three,four';
// 零 limit
print_r(explode(',',$str,0)); 返回一个数组
// 正的 limit
print_r(explode(',',$str,3)); 返回3个数组,前面会一个一个的,后面的合并
// 负的 limit
print_r(explode(',',$str,-1)); 返回都是一个的数组,去掉最后一个
?>
字符串转数组implode(separator,array)
Implode(),join别名
<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr)."<br>";
echo implode("+",$arr)."<br>";
echo implode("-",$arr)."<br>";
echo implode("X",$arr);
?>
PHP fprintf() 函数
把文本写入名为 "test.txt" 的文本文件:
<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo fprintf($file,"There are %u million bicycles in %s.",$number,$str);
?>
以上代码的输出:
40
以下文本将被写入文件 "test.txt":
There are 9 million bicycles in Beijing.
定义和用法
fprintf() 函数把格式化的字符串写入指定的输出流(例如:文件或数据库)。
arg1、arg2、arg++ 参数将被插入主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。
注释:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号后面,由数字和 "\$" 组成。请参见实例 2。
相关函数:
printf()
sprintf()
vfprintf()
vprintf()
vsprintf()
语法
fprintf(stream,format,arg1,arg2,arg++)
参数 | 描述 |
stream | 必需。规定在何处写入/输出字符串。 |
format | 必需。规定字符串以及如何格式化其中的变量。 可能的格式值: · %% - 返回一个百分号 % · %b - 二进制数 · %c - ASCII 值对应的字符 · %d - 包含正负号的十进制数(负数、0、正数) · %e - 使用小写的科学计数法(例如 1.2e+2) · %E - 使用大写的科学计数法(例如 1.2E+2) · %u - 不包含正负号的十进制数(大于等于 0) · %f - 浮点数(本地设置) · %F - 浮点数(非本地设置) · %g - 较短的 %e 和 %f · %G - 较短的 %E 和 %f · %o - 八进制数 · %s - 字符串 · %x - 十六进制数(小写字母) · %X - 十六进制数(大写字母) 附加的格式值。必需放置在 % 和字母之间(例如 %.2f): · + (在数字前面加上 + 或 - 来定义数字的正负性。 · ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。 · - (左调整变量值) · [0-9] (规定变量值的最小宽度) · .[0-9] (规定小数位数或最大字符串长度) 注释:如果使用多个额外的格式值,则必须按照上面的顺序进行使用。 |
arg1 | 必需。规定插到 format 字符串中第一个 % 符号处的参数。 |
arg2 | 可选。规定插到 format 字符串中第二个 % 符号处的参数。 |
arg++ | 可选。规定插到 format 字符串中第三、四等等 % 符号处的参数。 |
大小写问题
lcfirst() 函数把字符串中的首字符转换为小写。
相关函数:
strtolower() - 把字符串转换为小写
strtoupper() - 把字符串转换为大写
ucfirst() - 把字符串中的首字符转换为大写
ucwords() - 把字符串中每个单词的首字符转换为大写
去字符串问题
ltrim() 函数移除字符串左侧的空白字符或其他预定义字符。ltrim(string,charlist)
相关函数:
rtrim() - 移除字符串右侧的空白字符或其他预定义字符
trim() - 移除字符串两侧的空白字符或其他预定义字符
md5()/md5_file(),可以用来加密
<?php
$md5file = md5_file("test.txt");
file_put_contents("md5file.txt",$md5file);
?>
检测 "test.txt" 是否已被更改(即 MD5 散列是否已被更改):
<?php
$md5file = file_get_contents("md5file.txt");
if (md5_file("test.txt") == $md5file)
{
echo "The file is ok.";
}
else
{
echo "The file has been changed.";
}
?>
PHP parse_str() 函数
可用于搜索
<?php
parse_str("name=Bill&age=60");
echo $name."<br>";
echo $age;
?>
<?php
parse_str("name=Bill&age=60",$myArray);
print_r($myArray);
?>
PHP similar_text() 函数 可用于搜索比较可得排序
<?php
similar_text("Hello World","Hello Shanghai",$percent);
echo $percent. "%";
?>
PHP str_replace() 函数
查询值,替换词,要替换的字符串
<?php
echo str_replace("world","Shanghai","Hello world!");
?>
数组操作:
<?php
$arr = array("blue","red","green","yellow");
print_r(str_replace("red","pink",$arr,$i));
echo "替换数:$i";
?>
PHP str_split() 函数
每个数组3个字符
<?php
print_r(str_split("Shanghai",3));
?>
PHP strchr() 函数。该函数对大小写感敏。如需进行不区分大小写的搜索,请使用 stristr() 函数。
Stristr查出第一次出现的位置
Strops查出第一次出现的位置
<?php
echo strchr("Hello world!","world",true);
?>
如果最后一个参数为true则返回查找到单词的前面部分,否则返回查出的单词加后面的部分
PHP strip_tags() 函数
<?php
echo strip_tags("Hello <b><i>world!</i></b>","<b>");
//返回hello word
?>
stripos()函数
stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
注释:stripos() 函数是不区分大小写的。
注释:该函数是二进制安全的。
相关函数:
strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大小写)
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
echo stripos("You love php, I love php too!","PHP");
PHP substr() 函数
substr() 函数返回字符串的一部分。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0
substr_replace() 函数
定义和用法
substr_replace() 函数把字符串的一部分替换为另一个字符串。
注释:如果 start 参数是负数且 length 小于或者等于 start,则 length 为 0。
注释:该函数是二进制安全的。
<?php
echo substr_replace("Hello world","Shanghai",6);
?>