PHP记录 字符串 函数

来源:互联网 发布:保定seo外包 编辑:程序博客网 时间:2024/04/28 00:45

•addcslashes — 以C 语言风格使用反斜线转义字符串中的字符

 

•addslashes — 使用反斜线引用字符串(一般在sql语句中是经常用到的,将一个不必要的引号转义成字符串,让它不具备特殊的含义,避免被黑客进行sql注入)。

注释:默 认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数get_magic_quotes_gpc() 进行检测。

如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。

addslashes_deep函数本身没有问题,但使用时得注意一点
恰好今天也是在网上看到了有人发了关于使用这个函数使用的BUG注入漏洞
这个函数在引用回调函数addslashes时,只对数据的值进行转义,所以如果使用者在此过程中引用数组的键进行特定处理时,存在$key注入风险,此时可更改addslashes_deep函数,使其同时对键值进行转义,或者使用时明确不引用键内容。

 

•bin2hex — 函数把ASCII字符的字符串转换为十六进制值

•chop — rtrim 的别名

•chr — 返回指定的字符

•chunk_split — 将字符串分割成小块

•convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种

•convert_uudecode — 解码一个 uuencode 编码的字符串

•convert_uuencode — 使用 uuencode 编码一个字符串

uuencode 算法会将所有(含二进制)字符串转化为可输出的字符, 并且可以被安全的应用于网络传输。使用 uuencode编码后的数据 将会比源数据大35%左右

•count_chars — 返回字符串所用字符的信息

统计 string 中每个字节值(0..255)出现的次数,使用多种模式返回结果。

返回值 根据不同的 mode,count_chars() 返回下列不同的结果:

0 - 以所有的每个字节值作为键名,出现次数作为值的数组。

1 - 与 0相同,但只列出出现次数大于零的字节值。

2 - 与 0相同,但只列出出现次数等于零的字节值。

3 - 返回由所有使用了的字节值组成的字符串。

4 - 返回由所有未使用的字节值组成的字符串。

•crc32 — 计算一个字符串的 crc32 多项式

生成 str 的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。

•crypt — 单向字符串散列

crypt() 返回一个基于标准UNIX DES算法或系统上其他可用的替代算法的散列字符串。

有些系统支持不止一种散列类型。实际上,有时候,基于MD5 的算法被用来替代基于标准 DES 的算法。

•echo — 输出一个或多个字符串

说明 void echo ( string $arg1[, string $... ] )

输出所有参数。

echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo(不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。

echo 也有一个快捷用法,你可以在打开标记前直接用一个等号。在 PHP 5.4.0之前,必须在php.ini 里面启用 short_open_tag 才有效。

I have <?=$foo?> foo.

•explode(爆炸) —使用一个字符串分割另一个字符串

此函数返回由字符串组成的数组,每个元素都是 string的一个子串,它们被字符串 delimiter 作为边界点分割出来。

参数

delimiter边界上的分隔字符。

string输入的字符串。

limit如果设置了 limit参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。

如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。

如果 limit 是 0,则会被当做 1。

由于历史原因,虽然 implode() 可以接收两种参数顺序,但是 explode() 不行。你必须保证 separator 参数在 string 参数之前才行。

此函数可安全用于二进制对象

•fprintf — 将格式化后的字符串写入到流

参数

handle文件系统指针,是典型地由 fopen()创建的 resource(资源)。

format参见sprintf()中对 format 的描述。

args

...

•get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 后的转换表用处?????

•hebrev — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew)

hebrew_text逻辑顺序希伯来文字符串。

max_chars_per_line可选参数,表示每行可返回的最多字符数。

•hebrevc — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符

•hex2bin — 转换十六进制字符串为二进制字符串

•html_entity_decode — Convert all HTMLentities to their applicable characters

•htmlentities — Convert all applicablecharacters to HTML entities

•htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符

此函数的作用和 htmlspecialchars() 刚好相反。它将特殊的HTML实体转换回普通字符。

被转换的实体有: &amp;, &quot; (没有设置ENT_NOQUOTES 时), &#039; (设置了 ENT_QUOTES 时), &lt; 以及&gt;。

•htmlspecialchars — Convert specialcharacters to HTML entities

•implode(内爆) —将一个一维数组的值转化为字符串

•join — 别名implode

•lcfirst — 使一个字符串的第一个字符小写

返回str的第一个字符小写了的字符串。如果str的第一个字符是字母,则将其转换为小写。

需要注意的是"字母"是由当前语言区域决定的。比如,在默认的"C"区域像日耳曼语系中的元音变音a (?) 将不会被转换

•levenshtein — 计算两个字符串之间的编辑距离, 描述两个字符串之间的差异。

        例如把 kitten转换为 sitting

sitten k→s

sittin e→i

sitting →g

levenshtein()函数给每个操作(替换、插入和删除)相同的权重。不过,您可以通过设置可选的insertreplacedelete参数,来定义每个操作的代价。

字符替换成另一个字符,插入一个字符,删除一个字符?

网络爬虫程序里面使用这个算法来比较两个网页之间的版本,如果网页的内容有足够多的变动,我便将它更新到我的数据库。

原来的算法是创建一个大小为StrLen1*StrLen2的矩阵。如果所有字符串加起来是1000个字符那么长的话,那么这个矩阵就会是1M

现在的算法版本只使用2*StrLen个元素,这使得后面给出的例子成为2*10,000*4= 80 KB。其结果是,不但内存占用更少,而且速度也变快了!

以上DFA能准确接收与单词food相距一个或更少编辑距离的单词集。

采集器什么的可能会有用罢?????!!!!!

 

•localeconv — Get numeric formattinginformation本地数字及货币信息格式的数组 '$','¥'这种?????

把数字格式信息?

•ltrim — 删除字符串开头的空白字符(或其他字符)

该函数返回一个删除了 str 最左边的空白字符的字符串。如果不使用第二个参数, ltrim() 仅删除以下字符:

" " (ASCII 32(0x20)),普通空白字符。

"\t" (ASCII 9(0x09)), 制表符.

"\n" (ASCII 10(0x0A)),换行符。

"\r" (ASCII 13(0x0D)),回车符。

"\0" (ASCII 0(0x00)), NUL空字节符。

"\x0B" (ASCII 11(0x0B)),垂直制表符。

•md5_file — 计算指定文件的 MD5 散列值

filename文件名

raw_output如果被设置为 TRUE,那么报文摘要将以原始的 16 位二进制格式返回。

•md5 — 计算字符串的MD5 散列值

str原始字符串。

raw_output如果可选的raw_output被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。

•metaphone — Calculate the metaphone keyof a string 。

变音位; (指音位的自由变体)提示:metaphone() 比 soundex() 函数更精确,因为 metaphone() 了解基本的英语发音规则。

在本例中,我们对两个发音相似的单词应用metaphone() 函数:

<?php

$str = "Sun";

$str2 = "Son";

echo metaphone($str);

echo metaphone($str2);

?>

输出:

SN SN

PHP String 函数

•money_format — Formats a number as acurrency string把字符串格式化为货币字符串

例子 1

编辑

国际 en_US格式:

<?php

$number = 1234.56;

setlocale(LC_MONETARY, "en_US");

echo money_format("The price is %i", $number);

?>

输出:

The price is USD 1,234.56

例子 2

编辑

负数,带有 ()指示负数的 US 国际格式,右侧精度为 2"*"为填充字符

<?php

$number = -1234.5672;

echo money_format("%=*(#10.2n", $number);

?>

输出:

($********1,234.57)

 

•nl_langinfo — Query language and localeinformation 查询语言和本地信息 (时间和日历?)

注释:money_format() 函数无法在 windows 平台上工作!!!!!

提示:与返回所有本地格式化信息的localeconv() 函数不同,nl_langinfo() 返回指定的信息。

•nl2br — 在字符串所有新行之前插入 HTML 换行标记

string nl2br ( string$string [, bool $is_xhtml = true ] )

在字符串 string 所有新行之前插入 '<br />' 或 '<br>',并返回。

•number_format — 以千位分隔符方式格式化一个数字

<?php

$number = 1234.56;

// english notation(default)

$english_format_number =number_format($number);

// 1,235

// French notation

$nombre_format_francais =number_format($number, 2, ',', ' ');

// 1 234,56

$number = 1234.5678;

// english notation withoutthousands separator

$english_format_number =number_format($number, 2, '.', '');

// 1234.57

?>

•ord — 返回字符的ASCII 码值

int ord ( string $string )

返回字符串 string 第一个字符的 ASCII 码值。

该函数是 chr() 的互补函数。

<?php

$str = "\n";

if (ord($str) == 10) {

    echo "The first character of \$str isa line feed.\n";

}

?>

•parse_str — 将字符串解析成多个变量

void parse_str ( string $str[, array &$arr ] )

如果 str 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域。

Note:

获取当前的 QUERY_STRING,你可以使用 $_SERVER['QUERY_STRING'] 变量。 同时,你也许该阅读 来自PHP 之外的变量 这一节。

Note:

magic_quotes_gpc 影响到了parse_str()这个函数的输出,和 PHP 用于填充$_GET、 $_POST 及其他变量的机制一致。

<?php

$str ="first=value&arr[]=foo+bar&arr[]=baz";

parse_str($str);

echo $first;  // value

echo $arr[0]; // foo bar

echo $arr[1]; // baz

 

parse_str($str, $output);

echo $output['first'];  // value

echo $output['arr'][0]; //foo bar

echo $output['arr'][1]; //baz

?>

•print — 输出字符串

•printf — 输出格式化字符串

•quoted_printable_decode — 将 quoted-printable 字符串转换为 8-bit 字符串

该函数与 imap_qprint() 函数十分相似,但是该函数不需要依赖 IMAP 模块。

•quoted_printable_encode — 将 8-bit 字符串转换成 quoted-printable 字符串

该函数与 imap_8bit() 函数十分相似,不同的是该函数不需要 IMAP 模块就能运行。

•quotemeta — 转义元字符集

string quotemeta ( string$str )

返回 在下面这些特殊字符前加 反斜线(\) 转义后的字符串。这些特殊字符包含:

. \ + * ? [ ^ ] ( $ )

•rtrim — 删除字符串末端的空白字符(或者其他字符)  和上面的ltrim对应!!!!!

string rtrim ( string $str[, string $character_mask ] )

该函数删除 str 末端的空白字符并返回。

不使用第二个参数,rtrim() 仅删除以下字符:

" " (ASCII 32(0x20)),普通空白符。

"\t" (ASCII 9(0x09)),制表符。

"\n" (ASCII 10(0x0A)),换行符。

"\r" (ASCII 13(0x0D)),回车符。

"\0" (ASCII 0(0x00)),NUL空字节符。

"\x0B" (ASCII 11(0x0B)),垂直制表符。

•setlocale — 设置地区信息locale地点

•sha1_file — 计算文件的 sha1 散列值

<?php

foreach(glob('/home/Kalle/myproject/*.php')as $ent)

{

    if(is_dir($ent))

    {

        continue;

    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) .')', PHP_EOL;

}

?>

•sha1 — 计算字符串的sha1 散列值

•similar_text — 计算两个字符串的相似度  和levenshtein呢?????

两个字符串的相似程度计算依据 ProgrammingClassics: Implementing the World's Best Algorithms by Oliver (ISBN0-131-00413-1)的描述进行。注意该实现没有使用 Oliver 虚拟码中的堆栈,但是却进行了递归调用,这个做法可能会导致整个过程变慢或变快。也请注意,该算法的复杂度是 O(N**3),N 是最长字符串的长度。

 

•soundex — Calculate the soundex key ofa string

Soundex 值是利用英文字的读音近似值所求得的值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,特别是在做搜寻引擎时面对用户传入的英文字符串,可用本函数做类似模糊比对的效果。例如 Knuth和 Kant 二个字符串,它们的 soundex 值都是 H416。更详细的说明参考 Donald Knuth 大师的名著:电脑程序设计的艺术 (The Art OfComputer Programming) 第三卷排序和搜寻。

<?

$str1=soundex("Wilson");

$str2=soundex("Waillsume");

echo"soundex(\"Wilson\")=$str1 等于\n";

echo"soundex(\"Waillsume\")=$str2\n";

echo "值均为$str1";

?>

上例返回的字符串为

soundex("Wilson")=W425等于

soundex("Waillsume")=W425

值均为 W425

•sprintf — Return a formatted string 返回格式化字符串printf是输出到屏幕,这是输出到一个变量

string

s

integer

d,u, c, o, x, X, b

double

g,G, e, E, f, F

函数功能:把格式化的数据写入某个字符串

函数原型:int sprintf( char *buffer, const char *format [, argument] );

返回值:字符串长度(strlen

 

例子:

char*who = "I";

char*whom = "CSDN";

sprintf(s,"%s love %s.", who, whom); //产生:"I love CSDN. " 这字符串写到s

 

sprintf(s,"%10.3f", 3.1415626); //产生:" 3.142"

本函数与printf()基本一致,但输出结果写入字符串中 
例:将"test 1 2"写入数组s 
#include<stdio.h> 

int main(void) 

char s[40]; 
sprintf(s,"%s%d%c","test",1,'2'); 
/*第一个参数就是指向要写入的那个字符串的指针,剩下的就和printf()一样了 
你可以比较一下,这是向屏幕输入 
printf("%s%d%c","test",1,'2'); 

*/ 
return 0; 

}

•sscanf — 根据指定格式解析输入的字符 scanf是从键盘输入

<?php

// getting the serial number

list($serial) =sscanf("SN/2350001", "SN/%d");

// and the date ofmanufacturing

$mandate = "January 012000";

list($month, $day, $year) =sscanf($mandate, "%s %d %d");

echo "Item $serial wasmanufactured on: $year-" . substr($month, 0, 3) . "-$day\n";

?>

输出:

Item 2350001 wasmanufactured on: 2000-Jan-1

•str_getcsv — 解析CSV 字符串为一个数组

CSV格式是分隔的数据格式,有字段/列分隔的逗号字符和记录/行分隔换行符。字段包含特殊字符(逗号,换行符,或双引号),必须以双引号括住。行内包含一个项目是空字符串,可以以双引号括住。字段的值包含双引号时,要双写这个双引号(就像把一个双引号当做转义符一样)。CSV文件格式并不需要特定的字符编码,字节顺序,或行终止格式。

CSV文件格式

1、CSV文件默认以英文逗号(,)做为列分隔符,换行符(\n)作为行分隔符。

2、CSV默认认为由""括起来的内容是一个栏位,这时不管栏位内容里有除"之外字符的任何字符都可以按原来形式引用。

3、若字段内容里含有",这时只需将"替换成两个双引号("")即可。CSV会将字段里的两个双引号""显示成一个。

4、应用char(9)表示按照文本形式显示(实例红色字体部分)。

CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一张图片的许多属性。你在收一套图集时,只要能找到它的CSV文件,用专用的软件校验后,你对该图集的状况就可以了如指掌。
每行相当于一条记录,是用分割字段的纯文本数据库文件。

最多的种就是网络通讯录导入到本地电脑时,会有一个这种文件类型选择。

Excel 工作表?????

•str_ireplace —str_replace 的忽略大小写版本

该函数返回一个字符串或者数组。该字符串或数组是将subject 中全部的 search 都被 replace 替换(忽略大小写)之后的结果。如果没有一些特殊的替换规则,你应该使用该函数替换带有 i 修正符的 preg_replace() 函数。

<?php

$bodytag =str_ireplace("%body%", "black", "<bodytext=%BODY%>");

?>

•str_pad — 使用另一个字符串填充字符串为指定长度

该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度。

•str_repeat — 重复一个字符串

string str_repeat ( string$input , int $multiplier )

返回 input 重复 multiplier 次后的结果。

Example #1 str_repeat() 范例

<?php

echostr_repeat("-=", 10);

?>

以上例程会输出:

-=-=-=-=-=-=-=-=-=-=

•str_replace — 子字符串替换

mixed str_replace ( mixed $search ,mixed $replace , mixed $subject [, int &$count ] )

该函数返回一个字符串或者数组。该字符串或数组是将subject 中全部的 search 都被 replace 替换之后的结果。

如果没有一些特殊的替换需求(比如正则表达式),你应该使用该函数替换 ereg_replace()和 preg_replace()。

Example #1 str_replace() 基本范例

<?php

// 赋值:<body text='black'>

$bodytag =str_replace("%body%", "black", "<bodytext='%body%'>");

// 赋值: HllWrld f PHP

$vowels =array("a", "e", "i", "o","u", "A", "E", "I", "O","U");

$onlyconsonants =str_replace($vowels, "", "Hello World of PHP");

// 赋值: Youshould eat pizza, beer, and ice cream every day

$phrase  = "You should eat fruits, vegetables,and fiber every day.";

$healthy =array("fruits", "vegetables", "fiber");

$yummy   = array("pizza", "beer","ice cream");

$newphrase =str_replace($healthy, $yummy, $phrase);

// 赋值: 2

$str =str_replace("ll", "", "good golly miss molly!",$count);

echo $count;

?>

•str_rot13 — 对字符串执行 ROT13 转换    A-Z转圈圈,简单的加密!

ROT13 编码简单地使用字母表中后面第 13个字母替换当前字母,同时忽略非字母表中的字符。编码和解码都使用相同的函数,传递一个编码过的字符串作为参数,将得到原始字符串。

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

•str_shuffle — 随机打乱一个字符串, 使用任何一种可能的排序方案。 自已都不知道的加密!

<?php

$str = 'abcdef';

$shuffled =str_shuffle($str);

// 输出类似于:bfdaec

echo $shuffled;

?>

•str_split — 将字符串转换为数组

Example #1 str_split() 使用范例

<?php

$str = "HelloFriend";

 

$arr1 = str_split($str);

$arr2 = str_split($str, 3);

 

print_r($arr1);

print_r($arr2);

?>

以上例程会输出:

Array

(

    [0] => H

    [1] => e

    [2] => l

    [3] => l

    [4] => o

    [5] =>

    [6] => F

    [7] => r

    [8] => i

    [9] => e

    [10] => n

    [11] => d

)

Array

(

    [0] => Hel

    [1] => lo

    [2] => Fri

    [3] => end

)

•str_word_count — 返回字符串中单词的使用情况

统计 string 中单词的数量。如果可选的参数 format 没有被指定,那么返回值是一个代表单词数量的整型数。如果指定了format 参数,返回值将是一个数组,数组的内容则取决于 format 参数。format 的可能值和相应的输出结果如下所列。

对于这个函数的目的来说,单词的定义是一个与区域设置相关的字符串。这个字符串可以包含字母字符,也可以包含 "'"和 "-" 字符(但不能以这两个字符开始)。

<?php

$str = "Hello fri3nd,you're

       looking          good today!";

print_r(str_word_count($str,1));

print_r(str_word_count($str,2));

print_r(str_word_count($str,1, 'àá??3'));

echo str_word_count($str);

?>

以上例程会输出:

Array

(

    [0] => Hello

    [1] => fri

    [2] => nd

    [3] => you're

    [4] => looking

    [5] => good

    [6] => today

)

Array

(

    [0] => Hello

    [6] => fri

    [10] => nd

    [14] => you're

    [29] => looking

    [46] => good

    [51] => today

)

Array

(

    [0] => Hello

    [1] => fri3nd

    [2] => you're

    [3] => looking

    [4] => good

    [5] => today

)

7

•strcasecmp — 二进制安全比较字符串(不区分大小写)

返回值

如果 str1 小于 str2 返回 < 0; 如果str1 大于 str2 返回 > 0;如果两者相等,返回 0。

•strchr — 别名strstr查找字符串的首次出现

Note:

该函数区分大小写。如果想要不区分大小写,请使用stristr()

Note:

如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。

•strcmp — 二进制安全字符串比较

int strcmp ( string $str1 ,string $str2 )

注意该比较区分大小写。

如果 str1 小于 str2 返回 < 0; 如果str1 大于 str2 返回 > 0;如果两者相等,返回 0。

•strcoll — 基于区域设置的二进制字符串比较

int strcoll ( string $str1 ,string $str2 )

注意

该比较区分大小写。和 strcmp() 不同,该函数不是二进制安全的。

strcoll() 使用当前区域设置进行比较。如果当前区域为 C或 POSIX,该函数等同于strcmp()。

如果 str1 小于 str2 返回 < 0; 如果str1 大于 str2 返回 > 0;如果两者相等,返回 0。

•strcspn — 获取不匹配遮罩的起始子字符串的长度

Example #1 strcspn() example

<?php

$a = strcspn('abcd',  'apple');//abcd先是a apple第一个也是a相距0

$b = strcspn('abcd',  'banana');//abcd先是a banana第一个是b,abcd到第二个b banana第一个有b 相距0

$c = strcspn('hello', 'l');//hello第一个是h l没,e l没 ,l l 批配,相距2

$d = strcspn('hello','world');'hello'中的每个字符都和world匹配一次,第3个l 'world'中才有!!!!!

 

var_dump($a);

var_dump($b);

var_dump($c);

var_dump($d);

?>

以上例程会输出:

int(0)

int(0)

int(2)

int(2)

•strip_tags — 从字符串中去除 HTML 和 PHP 标记

string strip_tags ( string$str [, string $allowable_tags ] )

该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。它使用与函数 fgetss() 一样的机制去除标记。

Example #1 strip_tags() 范例

<?php

$text = '<p>Testparagraph.</p><!-- Comment --> <ahref="#fragment">Other text</a>';

echo strip_tags($text);

echo "\n";

// 允许<p>和 <a>

echo strip_tags($text,'<p><a>');

?>

以上例程会输出:

Test paragraph. Other text

<p>Testparagraph.</p> <a href="#fragment">Other text</a>

•stripcslashes — 反引用一个使用 addcslashes 转义的字符串

string stripcslashes (string $str )

返回反转义后的字符串。可识别类似 C 语言的 \n,\r,... 八进制以及十六进制的描述。

•stripos — 查找字符串首次出现的位置(不区分大小写) 在xxx中找x!!!!!

int stripos ( string$haystack , string $needle [, int $offset = 0 ] )

返回在字符串 haystack 中 needle 首次出现的数字位置。

与 strpos() 不同,stripos() 不区分大小写。

<?php

$findme    = 'a';

$mystring1 = 'xyz';

$mystring2 = 'ABC';

$pos1 = stripos($mystring1,$findme);

$pos2 = stripos($mystring2,$findme);

// 'a' 当然不在 'xyz'

if ($pos1 === false) {

    echo "The string '$findme' was notfound in the string '$mystring1'";

}

// 注意这里使用的是===。简单的 == 不能像我们期望的那样工作,

// 因为 'a'的位置是 0(第一个字符)。

if ($pos2 !== false) {

    echo "We found '$findme' in'$mystring2' at position $pos2";

}

?>

•stripslashes — 反引用一个引用字符串

返回一个去除转义反斜线后的字符串(\' 转换为 ' 等等)。双反斜线(\\)被转换为单个反斜线(\)。

<?php

$str = "Is your nameO\'reilly?";

// 输出: Is yourname O'reilly?

echo stripslashes($str);

?>

Note:

stripslashes() 是非递归的。如果你想要在多维数组中使用该函数,你需要使用递归函数。

•stristr —strstr 函数的忽略大小写版本 前截后截

string stristr ( string$haystack , mixed $needle [, bool $before_needle = false ] )

返回 haystack 字符串从 needle 第一次出现的位置开始到结尾的字符串。

<?php

  $email = 'USER@EXAMPLE.com';

  echo stristr($email, 'e'); // 输出ER@EXAMPLE.com

  echo stristr($email, 'e', true); // 自 PHP 5.3.0 起,输出 US

?>

•strlen — 获取字符串长度 空格也算

•strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写)

与其他字符串比较函数类似,如果 str1 小于 str2 返回 < 0; 如果str1 大于 str2 返回 > 0;如果两者相等,返回 0。

•strnatcmp — 使用自然排序算法比较字符串

int strnatcmp ( string $str1, string $str2 )

该函数实现了以人类习惯对数字型字符串进行排序的比较算法,这就是"自然顺序"。注意该比较区分大小写。

与其他字符串比较函数类似,如果 str1 小于 str2 返回 < 0; 如果str1 大于 str2 返回 > 0;如果两者相等,返回 0。

<?php

$arr1 = $arr2 =array("img12.png", "img10.png", "img2.png","img1.png");

echo "Standard stringcomparison\n";

usort($arr1,"strcmp");//usort使用用户自定义的函数对数组排序。 二进制排序

print_r($arr1);

echo "\nNatural orderstring comparison\n";

usort($arr2,"strnatcmp");//自然排序,按人的习惯从小到大

print_r($arr2);

?>

以上例程会输出:

Standard string comparison

Array

(

    [0] => img1.png

    [1] => img10.png

    [2] => img12.png

    [3] => img2.png

)

 

Natural order stringcomparison

Array

(

    [0] => img1.png

    [1] => img2.png

    [2] => img10.png

    [3] => img12.png

)

•strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写)

int strncasecmp ( string$str1 , string $str2 , int $len )

该函数与 strcasecmp() 类似,不同之处在于你可以指定两个字符串比较时使用的长度(即最大比较长度)。

•strncmp — 二进制安全比较字符串开头的若干个字符

int strncmp ( string $str1 ,string $str2 , int $len )

该函数与 strcmp() 类似,不同之处在于你可以指定两个字符串比较时使用的长度(即最大比较长度)。

注意该比较区分大小写。

•strpbrk — 在字符串中查找一组字符的任何一个字符 找几个字符,从字符处截断前面的

string strpbrk ( string$haystack , string $char_list )

strpbrk() 函数在haystack字符串中查找 char_list 中的字符。

参数

haystack在此字符串中查找char_list

char_list该参数区分大小写。

<?php

$text = 'This is a Simpletext.';

// 输出 "isis a Simple text.",因为 'i' 先被匹配

echo strpbrk($text, 'mi');

// 输出"Simple text.",因为字符区分大小写

echo strpbrk($text, 'S');

?>

•strpos — 查找字符串首次出现的位置

mixed strpos ( string$haystack , mixed $needle [, int $offset = 0 ] )

返回 needle 在 haystack 中首次出现的数字位置。

<?php

$mystring = 'abc';

$findme   = 'a';

$pos = strpos($mystring,$findme);

// 注意这里使用的是===。简单的 == 不能像我们期待的那样工作,

// 因为 'a'是第 0 位置上的(第一个)字符。

if ($pos === false) {

    echo "The string '$findme' was notfound in the string '$mystring'";

} else {

    echo "The string '$findme' was foundin the string '$mystring'";

    echo " and exists at position$pos";

}

?>

•strrchr — 查找指定字符在字符串中的最后一次出现

string strrchr ( string$haystack , mixed $needle )

该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。

<?php

// 获取 $PATH中不含磁盘符号的目录

$dir = substr(strrchr($PATH,":"), 1);

// 获取最后一行内容

$text = "Line 1\nLine2\nLine 3";

$last = substr(strrchr($text,10), 1 );//组合使用!!!!!

?>

•strrev — 反转字符串

string strrev ( string$string )

返回 string 反转后的字符串。

<?php

echo strrev("Helloworld!"); // 输出 "!dlrow olleH"

?>

•strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)

int strripos ( string$haystack , string $needle [, int $offset = 0 ] )

以不区分大小写的方式查找指定字符串在目标字符串中最后一次出现的位置。与 strrpos()不同,strripos() 不区分大小写。

<?php

$haystack = 'ababcd';

$needle   = 'aB';

 

$pos      = strripos($haystack, $needle);

 

if ($pos === false) {

    echo "Sorry, we did not find ($needle)in ($haystack)";

} else {

    echo "Congratulations!\n";

    echo "We found the last ($needle) in($haystack) at position ($pos)";

}

?>

以上例程会输出:

   Congratulations!

   We found the last (aB) in (ababcd) atposition (2)//最后一次在第2个那

•strrpos — 计算指定字符串在目标字符串中最后一次出现的位置

int strrpos ( string$haystack , string $needle [, int $offset = 0 ] )

返回字符串 haystack 中 needle 最后一次出现的数字位置。注意 PHP4 中,needle 只能为单个字符。如果 needle 被指定为一个字符串,那么将仅使用第一个字符。

Example #1 检查字串是否存在

很容易将"在位置 0 处找到"和"未发现字符串"这两种情况搞错。这是检测区别的办法:

<?php

$pos = strrpos($mystring,"b");

if ($pos === false) { // 注意:三个等号

    // 未发现...

}

?>

•strspn — 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度

int strspn ( string $subject, string $mask [, int $start [, int $length ]] )

返回 subject 中全部字符仅存在于 mask 中的第一组连续字符(子字符串)的长度。

如果省略了 start 和 length 参数,则检查整个 subject 字符串;如果指定了这两个参数,则效果等同于调用 strspn(substr($subject, $start, $length), $mask)(更多信息,参见 substr )。

代码行:

<?php

$var = strspn("42 isthe answer to the 128th question.", "1234567890");

?>

$var 将被指派为 2,因为 '42' 是 subject 中第一段全部字符都存在于 '1234567890' 的连续字符。

Example #1 strspn() 范例

<?php

echo strspn("foo","o", 1, 2); // 打印: 2

?>

以上例程会输出:

int(0)

int(2)

int(1)

•strstr — 查找字符串的首次出现  也是截掉?

string strstr ( string$haystack , mixed $needle [, bool $before_needle = false ] )

返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。

Note:

该函数区分大小写。如果想要不区分大小写,请使用stristr()

Note:

如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。

Example #1 strstr() 范例

<?php

$email  = 'name@example.com';

$domain = strstr($email,'@');

echo $domain; // 打印@example.com

$user = strstr($email, '@',true); // 从 PHP 5.3.0

echo $user; // 打印 name

?>

•strtok — 标记分割字符串

string strtok ( string $str, string $token )

string strtok ( string$token )

strtok() 将字符串 str分割为若干子字符串,每个子字符串以 token 中的字符分割。这也就意味着,如果有个字符串是 "This isan example string",你可以使用空格字符将这句话分割成独立的单词。

注意仅第一次调用 strtok 函数时使用 string 参数。后来每次调用 strtok,都将只使用 token 参数,因为它会记住它在字符串 string 中的位置。如果要重新开始分割一个新的字符串,你需要再次使用 string 来调用 strtok 函数,以便完成初始化工作。注意可以在 token 参数中使用多个字符。字符串将被该参数中任何一个字符分割。

Example #1 strtok() 范例

<?php

$string = "This is\tanexample\nstring";

/* 使用制表符和换行符作为分界符 */

$tok = strtok($string," \n\t");//遇到空格或\n或\t时分割

while ($tok !== false) {

    echo "Word=$tok<br />";

    $tok = strtok(" \n\t");

}

?>

输出:

Word=This

Word=is

Word=an

Word=example

Word=string

•strtolower — 将字符串转化为小写

将 string 中所有的字母字符转换为小写并返回。

注意 "字母" 与当前所在区域有关。例如,在默认的 "C" 区域,字符 umlaut-A(?)就不会被转换。

<?php

$str = "Mary Had ALittle Lamb and She LOVED It So";

$str = strtolower($str);

echo $str; // 打印 mary hada little lamb and she loved it so

?>

•strtoupper — 将字符串转化为大写

•strtr — 转换指定字符

string strtr ( string $str ,string $from , string $to )

string strtr ( string $str ,array $replace_pairs )

该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 比如, $from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。

如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。

<?php

$trans =array("hello" => "hi", "hi" =>"hello");

echo strtr("hi all, Isaid hello", $trans);

?>

以上例程会输出:

hello all, I said hi

•substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)

int substr_compare ( string$main_str , string $str , int $offset [, int $length [, bool$case_insensitivity = false ]] )

substr_compare() 从偏移位置offset开始比较 main_str 与 str,比较长度为 length 个字符。

如果 main_str 从偏移位置 offset 起的子字符串小于 str,则返回小于 0 的数;如果大于 str,则返回大于0 的数;如果二者相等,则返回 0。如果 offset 大于等于 main_str 的长度或 length 被设置为小于 1 的值( PHP 5.6 之前的版本),substr_compare() 将打印出一条警告信息并且返回 FALSE。

<?php

echosubstr_compare("abcde", "bc", 1, 2); // 0

echosubstr_compare("abcde", "de", -2, 2); // 0

echosubstr_compare("abcde", "bcg", 1, 2); // 0

echosubstr_compare("abcde", "BC", 1, 2, true); // 0

echosubstr_compare("abcde", "bc", 1, 3); // 1

echosubstr_compare("abcde", "cd", 1, 2); // -1

echosubstr_compare("abcde", "abc", 5, 1); // warning

?>

•substr_count — 计算字串出现的次数(int)

int substr_count ( string$haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_count() 返回子字符串needle在字符串 haystack 中出现的次数。注意 needle 区分大小写。

Example #1 substr_count() 范例

<?php

$text = 'This is a test';

echo strlen($text); // 14

echo substr_count($text,'is'); // 2

// 字符串被简化为 'sis a test',因此输出 1

echo substr_count($text,'is', 3);

// 字符串被简化为 'si',所以输出 0

echo substr_count($text,'is', 3, 3);

// 因为 5+10> 14,所以生成警告

echo substr_count($text,'is', 5, 10);

// 输出 1,因为该函数不计算重叠字符串

$text2 = 'gcdgcdgcd';

echo substr_count($text2,'gcdgcd');

?>

•substr_replace — 替换字符串的子串

mixed substr_replace ( mixed$string , mixed $replacement , mixed $start [, mixed $length ] )

substr_replace() 在字符串 string的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。

返回结果字符串。如果 string 是个数组,那么也将返回一个数组。

Example #1 substr_replace() 范例

<?php

$var = 'ABCDEFGH:/MNRPQR/';

echo "Original:$var<hr />\n";

/* 这两个例子使用"bob"替换整个 $var。*/

echo substr_replace($var,'bob', 0) . "<br />\n";

echo substr_replace($var,'bob', 0, strlen($var)) . "<br />\n";

/* 将"bob"插入到 $var 的开头处。*/

echo substr_replace($var,'bob', 0, 0) . "<br />\n";

/* 下面两个例子使用"bob"替换 $var 中的"MNRPQR"。*/

echo substr_replace($var,'bob', 10, -1) . "<br />\n";

echo substr_replace($var,'bob', -7, -1) . "<br />\n";

/* 从 $var中删除 "MNRPQR"。*/

echo substr_replace($var,'', 10, -1) . "<br />\n";

?>

•substr — 返回字符串的子串  (抽取几个出来)

string substr ( string$string , int $start [, int $length ] )

返回字符串 string 由 start 和 length 参数指定的子字符串。

<?php

$rest =substr("abcdef", -1);    // 返回"f"

$rest =substr("abcdef", -2);    // 返回"ef"

$rest =substr("abcdef", -3, 1); // 返回 "d"

?>

•trim — 去除字符串首尾处的空白字符(或者其他字符)

string trim ( string $str [,string $charlist = " \t\n\r\0\x0B" ] )

此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:

" " (ASCII 32(0x20)),普通空格符。

"\t" (ASCII 9(0x09)),制表符。

"\n" (ASCII 10(0x0A)),换行符。

"\r" (ASCII 13(0x0D)),回车符。

"\0" (ASCII 0(0x00)),空字节符。

"\x0B" (ASCII 11(0x0B)),垂直制表符。

•ucfirst — 将字符串的首字母转换为大写

string ucfirst ( string $str)

将 str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串。

注意字母的定义取决于当前区域设定。例如,在默认的"C" 区域,字符 umlaut-a(?)将不会被转换。

•ucwords — 将字符串中每个单词的首字母转换为大写

string ucwords ( string $str)

将 str 中每个单词的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串。

这里单词的定义是紧跟在空白字符(空格符、制表符、换行符、回车符、水平线以及竖线)之后的子字符串。

•vfprintf — 将格式化字符串写入流

int vfprintf ( resource$handle , string $format , array $args )

向由 handle 指定的流资源句柄中写入根据 format 格式化后的字符串。

作用与 fprintf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数。

•vprintf — 输出格式化字符串

int vprintf ( string $format, array $args )

根据 format (sprintf() 函数文档中有相关描述)参数指定的格式,在一个格式化字符串中显示多个值。

作用与 printf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数。

•vsprintf — 返回格式化字符串

string vsprintf ( string$format , array $args )

作用与 sprintf() 函数类似,但是接收一个数组参数,而不是一系列可变数量的参数。

Example #1 vsprintf(): 前导 0的整数

<?php

printvsprintf("%04d-%02d-%02d", explode('-', '1988-8-1'));// 1988-08-01

?>

•wordwrap — 打断字符串为指定数量的字串

string wordwrap ( string$str [, int $width = 75 [, string $break = "\n" [, bool $cut = false]]] )

使用字符串断点将字符串打断为指定数量的字串。

Example #1 wordwrap() 范例

<?php

$text = "The quickbrown fox jumped over the lazy dog.";

$newtext = wordwrap($text,20, "<br />\n");//在text的 20处截断,插上<br/>\n

echo $newtext;

?>

以上例程会输出:

The quick brown fox<br/>

jumped over the lazy<br/>

dog.

0 0
原创粉丝点击