php字符串函数

来源:互联网 发布:java输出平行四边形 编辑:程序博客网 时间:2024/06/02 03:38

1、http_build_query()

生成 URL-encode 之后的请求字符串

$data = array('foo'=>'bar',             'baz'=>'boom',             'cow'=>'milk',             'php'=>'hypertext processor');   echo http_build_query($data) . "\n";输出:foo=bar&baz=boom&cow=milk&php=hypertext+processorecho http_build_query($data, '', '&');输出:foo=bar&baz=boom&cow=milk&php=hypertext+processor

2、strcmp($str1,$str2) 和strcasecmp($str1,$str2)、strncmp($str1,$str2,$len)字符串比较函数

三个函数比较相似,按照字节的ASCII值从两个字符串的首字节开始比较,如果相等则进入下一个字节的比较,直至结束比较。
strcmp返回值:
0:相等
1:$str1大于$str2
-1:$str1小于$str2
>0:字符串部分相同,但$str1字符串比$str2长
\<0:字符串部分相同,但$str2字符串比$str1长

echo strcmp('Hello','hEllo');  //输出-1 ,第一个字节就不相等,后面就不用比了echo strcmp('hEllo','Hello');  //输出1echo strcmp("Hello wor","Hello");  //输出4,若前面的字符串都相等,后面的比较长度

strcasecmp:返回值是将字符串全部转化成小写,在根据ASKII码值的差值计算得来。用法同strcmp
strncmp($str1,$str2,$len) 能指定最大比较长度,用法跟strcmp()相同

3、strtr($str,$arr)转换字符串中特定字符

$str:字符串
$arr:转换关系的数组

$arr = array("Hello" => "Hi", "world" => "earth");echo strtr("Hello world",$arr); //输出 Hi,earth

另一种形式:
strtr($str,$from,$to)
$from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。

$str = 'Hello world!';echo strtr($str,"Hello","12345");//H被换成1,e被换成2,以此类推

4、printf() 和sprintf()

printf() 函数输出格式化的字符串。
sprint()函数把格式化的字符串写入变量中。
sprintf()详细解释:
sprintf(“%格式化类型”,arg1,arg2,arg++)
arg1:添加到第一个%的参数
arg2:添加到第二个%的参数
。。。依次类推
这里写图片描述
这里写图片描述

#1:      % '(补位值) 宽度值  格式化类型 $c="1234";echo sprintf("%'x13.2f",$c);// 效果为:xxxxxx1234.00#2:      %  宽度值  格式化类型 (无需补位)$a="abcdef";$b="abcdef";$c="1234";echo sprintf("[%-6s]",$c);       //结果是:[1234 ]  默认向左补充,-表示向右补充,-6前没有要填充的字符,就用空格补充,但最多就显示一个空格echo sprintf("[%'x-8s]",$a);       //结果是:[abcdefxx]echo sprintf("[%4.2s]",$c);       //结果是:[ 12]  解释:.[0-9]若是数字时,代表小数位数;此处是字符串,表示字符串的最大长度,所以先将字符串剪为2位,4代表整个变量的最小宽度为4,所以不够的要补位,默认向左补位空格,但最多显示一个空格,结果为[ 12]echo sprintf("[%08s]",$a)//0表是用0补充空位,此时前面可以不加单引号,8代表总长度,默认向左填充  [00abcdef]

5、hash()

hash($algo,$str)
$algo为加密算法,常用的有sha1、MD5、sha256

Sha1有专门的php函数: Sha1($str)

6、hash_hmac($algo,$data,$key)

生成带有秘钥的哈希值
$algo:哈希算法名,md5,sha256等
$data:加密的内容
$key:密钥

7、base64_encode(string $data)

Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入, base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符.图片类型格式如下:
data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/ LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D。

header('Content-type:text/html;charset=utf-8');function image_base64($image_file){    if(empty($image_file))return false;    $image_info = getimagesize($image_file);    $base64_image_content = "data:{$image_info['mime']};base64," . chunk_split(base64_encode(file_get_contents($image_file)));// chunk_split不加参数时,默认76个字符后会加个换行符;    return $base64_image_content;}echo image_base64('./Desert.jpg');

解码时:只需要将base64, 后面的部分base64_decode()即可,结合file_put_content()将其保存;

8、urlencode()

在浏览器地址栏传递一些特殊符号信息,会被误解,例如 & = 空格 中文 等,使用urlencode()对其进行编码;
urlencode():除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格编码为+。

9、iconv()

string iconv ( string in_charset, string out_charset, string str )
第二个参数可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断(即遇到不能转化的字符,之后的所有字符都不能输出)。

iconv(‘utf-8’,’gb2312//IGNORE’,$str);  //当中文不能显示时,需要转成gbk或gb2312

10、mb_convert_encoding (string str, string to_encoding [, mixed from_encoding])

可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
注:一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数.

11、str_getcsv() 解析csv字符串为数组

array str_getcsv ( string $input [, string $delimiter = “,” [, string $enclosure = ‘”’ [, string $escape = “\” ]]] )
不同于explode(),可以设置包裹字符,将被包裹的内容看成整体,不被$delimiter分割
input : 待解析的字符串
delimiter : 设定字段界定符(仅单个字符)
enclosure : 设定字段包裹字符(仅单个字符)
escape : 设置转义字符(仅单个字符),默认为反斜线(\)

$str = "中国,广东省,广州市,天河区,'113.329884,23.154799',1,'2016-01-01 12:00:00','1,2,3,4,5,6'";$arr = str_getcsv($str, ',', "'");print_r($arr);//输出:Array(    [0] => 中国    [1] => 广东省    [2] => 广州市    [3] => 天河区    [4] => 113.329884,23.154799    [5] => 1    [6] => 2016-01-01 12:00:00    [7] => 1,2,3,4,5,6)

12、str_word_count($str)

统计字符串中含有的单词数

13、strpos(string,search[,start])

查找字符串search在string中首次出现的位置,也常用于检测字符串中是否含有某个字符
大小写敏感
未查到返回false

原创粉丝点击