php常用的的字符串
① php中几个常用的字符串查找函数
PHP字符串查找的函数的函数比较多,这里演示下常用几种使用方法:
?php//1.strstr()函数:用于获取一个指定字符串在另一个字符串中首次出现的位置开始,直到结束的子字符串,//如果执行成功,则返回剩余字符串;否则返回false。echo
strstr("..com","");
//.com
//2.
strpos()函数:返回字符串在另一个字符串中第一次出现的位置。如果没有找到字符串,则返回false。$str
=
'hello,iam!';$find
=
'';if(strpos($str,$find)!==false){echo
'字符串包含:!';}else{echo
'字符串不包含:!';}//输出结果:字符串包含:!
//返回字符串在str中第一次出现的位置echo
strpos($str,$find);//14?
② php字符串还有$string[$i]或者$string{$i}这样表示的
在PHP里,字符串可以当作数组来使用。
以下是php官方使用手册中的相关说明:
存取和修改字符串中的字符
字符串中的字符可以通过一个以0为开始的,用类似数组结构中的方括号包含对应的数字来查找和修改,比如 $str[42], 可以把 字符串想象数组 。
函数 substr() 和 substr_replace()可以用来实现多于一个字符的情况。
Note:
字符串为了同样的目的也可以用花括号,比如 $str{42},但是, 在PHP 5.3.0中不推荐使用这种格式,应该用方括号,就像 $str[42]。
③ 几个常用的php字符串比较函数用法汇总
二者的区别是:双等号不比较类型,三等号会比较类型,但不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。综上所述,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。 如下代码: var_mp(0 == 'Test'); var_mp(0 == ''); var_mp(5 > 'T'); var_mp(strcmp(5, 'T')); 结果为(第1~3结果是不对的,只有第4个是对的)代码如下: bool(true) bool(true) bool(true) int(-1)
④ php常用的字符串的输出函数都有哪些
echo print_r
die exit 会中断脚本
var_mp 用于数组,对象,资源等
⑤ php字符串查找
PHP字符串查找的函数的函数比较多,这里演示下常用几种使用方法:
<?php
//1.strstr()函数:用于获取一个指定字符串在另一个字符串中首次出现的位置开始,直到结束的子字符串,
//如果执行成功,则返回剩余字符串;否则返回false。
echostrstr("..com","");
//.com
//2.strpos()函数:返回字符串在另一个字符串中第一次出现的位置。如果没有找到字符串,则返回false。
$str='hello,iam!';
$find='';
if(strpos($str,$find)!==false){
echo'字符串包含:!';
}else{
echo'字符串不包含:!';
}
//输出结果:字符串包含:!
//返回字符串在str中第一次出现的位置
echostrpos($str,$find);
//14
?>
⑥ 字符串的16、PHP中介绍
string是一系列字符。在 php 中,字符和字节一样,也就是说,一共有 256 种不同字符的可能性。这也暗示 php 对 Unicode 没有本地支持。请参阅函数utf8_encode()和utf8_decode()以了解有关 Unicode 支持
注:一个字符串变得非常巨大也没有问题,php 没有给字符串的大小强加实现范围,所以完全没有理由担心长字符串。
语法
字符串可以用三种字面上的方法定义。
单引号
双引号
定界符 指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。
要表示一个单引号,需要用反斜线(/)转义,和很多其它语言一样。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。注意如果试图转义任何其它字符,反斜线本身也会被显示出来!所以通常不需要转义反斜线本身。
注:在 php 3 中,此情况下将发出一个 E_NOTICE 级的警告。
注:和其他两种语法不同,单引号字符串中出现的变量和转义序列不会被变量的值替代。
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// Outputs: Arnold once said: I'll be backecho 'Arnold once said: I/'ll be back';// Outputs: You deleted C:/*.*?echo 'You deleted C://*.*?';// Outputs: You deleted C:/*.*?echo 'You deleted C:/*.*?';// Outputs: This will not expand: /n a newlineecho 'This will not expand: /n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?>
此外,如果试图转义任何其它字符,反斜线本身也会被显示出来!
双引号字符串最重要的一点是其中的变量名会被变量值替代。细节参见字符串解析。 另一种给字符串定界的方法使用定界符语法(“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。
结束标识符必须从行的第一列开始。同样,标识符也必须遵循 php 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。
例子 11-3. 非法的例子
<?phpclass foo { public $bar = <<<EOTbarEOT;}?>
定界符文本表现的就和双引号字符串一样,只是没有双引号。这意味着在定界符文本中不需要转义引号,不过仍然可以用以上列出来的转义代码。变量会被展开,但当在定界符文本中表达复杂变量时和字符串一样同样也要注意。
例子 11-4. 定界符字符串例子
<?php$str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo <<<EOTMy name is $name. I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': /x41EOT;?>注:定界符支持是 php 4 中加入的。 当用双引号或者定界符指定字符串时,其中的变量会被解析。
有两种语法,一种简单的和一种复杂的。简单语法最通用和方便,它提供了解析变量,数组值,或者对象属性的方法。
复杂语法是 php 4 引进的,可以用花括号括起一个表达式。
简单语法如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名。如果想明示指定名字的结束,用花括号把变量名括起来。
<?php$beer = 'Heineken';echo $beer's taste is great; // works, ' is an invalid character for varnamesecho He drank some $beers; // won't work, 's' is a valid character for varnamesecho He drank some ${beer}s; // worksecho He drank some {$beer}s; // works?>
同样也可以解析数组索引或者对象属性。对于数组索引,右方括号(])标志着索引的结束。对象属性则和简单变量适用同样的规则,尽管对于对象属性没有像变量那样的小技巧。
<?php// These examples are specific to using arrays inside of strings.// When outside of a string, always quote your array string keys// and do not use {braces} when outside of strings either.// Let's show all errorserror_reporting(E_ALL);$fruits = array('strawberry' => 'red', 'banana' => 'yellow');// Works but note that this works differently outside string-quotesecho A banana is $fruits[banana].;// Worksecho A banana is {$fruits['banana']}.;// Works but php looks for a constant named banana first// as described below.echo A banana is {$fruits[banana]}.;// Won't work, use braces. This results in a parse error.echo A banana is $fruits['banana'].;// Worksecho A banana is . $fruits['banana'] . .;// Worksecho This square is $square->width meters broad.;// Won't work. For a solution, see the complex syntax.echo This square is $square->width00 centimeters broad.;?>
对于任何更复杂的情况,应该使用复杂语法。
复杂(花括号)语法不是因为语法复杂而称其为复杂,而是因为用此方法可以包含复杂的表达式。
事实上,用此语法可以在字符串中包含任何在名字空间的值。仅仅用和在字符串之外同样的方法写一个表达式,然后用 { 和 } 把它包含进来。因为不能转义“{”,此语法仅在 $ 紧跟在 { 后面时被识别(用“{/$”或者“/{$”来得到一个字面上的“{$”)。用一些例子可以更清晰:
<?php// Let's show all errorserror_reporting(E_ALL);$great = 'fantastic';// 不行,输出为:This is { fantastic}echo This is { $great};// 可以,输出为:This is fantasticecho This is {$great};echo This is ${great};// Worksecho This square is {$square->width}00 centimeters broad.;// Worksecho This works: {$arr[4][3]};// This is wrong for the same reason as $foo[bar] is wrong// outside a string. In otherwords, it will still work but// because php first looks for a constant named foo, it will// throw an error of level E_NOTICE (undefined constant).echo This is wrong: {$arr[foo][3]};// Works. When using multi-dimensional arrays, always use// braces around arrays when inside of stringsecho This works: {$arr['foo'][3]};// Works.echo This works: . $arr['foo'][3];echo You can even write {$obj->values[3]->name};echo This is the value of the var named $name: {${$name}};?>
访问和修改字符串中的字符
字符串中的字符可以通过在字符串之后用花括号指定所要字符从零开始的偏移量来访问和修改。
注:为了向下兼容,仍然可以用方括号。不过此语法自 php 4 起已过时。
例子 11-5. 一些字符串例子
<?php// Get the first character of a string$str = 'This is a test.';$first = $str{0};// Get the third character of a string$third = $str{2};// Get the last character of a string.$str = 'This is still a test.';$last = $str{strlen($str)-1};// Modify the last character of a string$str = 'Look at the sea';$str{strlen($str)-1} = 'e';?> 字符串可以用“.”(点)运算符连接。注意这里不能用“+”(加)运算符。更多信息参见字符串运算符。
有很多实用函数来改变字符串。
普通函数见字符串函数一节,高级搜索和替换见正则表达式函数(两种风格:Perl 和 POSIX 扩展)。
还有 URL 字符串函数,以及加密/解密字符串的函数(mcrypt 和 mhash)。
最后,如果还是找不到想要的函数,参见字符类型函数。 可以用 (string) 标记或者strval()函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用echo()或者print()函数时,或者将一个变量值与一个字符串进行比较的时候。阅读手册中有关类型和类型戏法中的部分有助于更清楚一些。参见settype()。
布尔值TRUE将被转换为字符串 1,而值FALSE将被表示为 (即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。
整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
数组将被转换成字符串 Array,因此无法通过echo()或者print()函数来输出数组的内容。请参考下文以获取更多提示。
对象将被转换成字符串 Object。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数get_class()。自 php 5 起,如果合适可以用 __toString() 方法。
资源类型总是以 Resource id #1 的格式被转换成字符串,其中 1 是 php 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数get_resource_type()。
NULL将被转换成空字符串。
正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数print_r()和var_mp(),对于调试来说,这些是更好的打印值的方法。
可以将 php 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数serialize()来完成该操作。如果在安装 php 时建立了 WDDX 支持,还可以将 php 的值序列化为 XML 结构。 当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。
如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作float来求值。否则就被当作整数。
该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。合法数字数据由可选的正负号开始,后面跟着一个或多个数字(可选地包括十进制分数),后面跟着可选的指数。指数是一个“e”或者“E”后面跟着一个或多个数字。
<?php$foo = 1 + 10.5; // $foo is float (11.5)$foo = 1 + -1.3e3; // $foo is float (-1299)$foo = 1 + bob-1.3e3; // $foo is integer (1)$foo = 1 + bob3; // $foo is integer (1)$foo = 1 + 10 Small Pigs; // $foo is integer (11)$foo = 4 + 10.2 Little Piggies; // $foo is float (14.2)$foo = 10.0 pigs + 1; // $foo is float (11)$foo = 10.0 pigs + 1.0; // $foo is float (11)?>
此转换的更多信息见 Unix 手册中关于 strtod(3) 的部分。
如果想测试本节中的任何例子,可以拷贝和粘贴这些例子并且加上下面这一行自己看看会发生什么:
<?phpecho /$foo==$foo; type is . gettype ($foo) . <br />/n;?>
不要指望在将一个字符转换成整型时能够得到该字符的编码(可能也会在 C 中这么做)。如果希望在字符编码和字符之间转换,请使用ord()和chr()函数。
⑦ 如何能巧妙的记忆php中的常用字符串函数
没有技巧,熟能生巧。再简单的函数,长时间不用,过段时间使用时总会再去查相关文档。
⑧ php字符串函数有哪些
函数 描述
addcslashes() 返回在指定的字符前添加反斜杠的字符串。
addslashes() 返回在预定义的字符前添加反斜杠的字符串。
bin2hex() 把 ASCII 字符的字符串转换为十六进制值。
chop() 删除字符串右侧的空白字符或其他字符。
chr() 从指定的 ASCII 值返回字符。
chunk_split() 把字符串分割为一系列更小的部分。
convert_cyr_string() 把字符串由一种 Cyrillic 字符集转换为另一种。
convert_uudecode() 解码 uuencode 编码字符串。
convert_uuencode() 使用 uuencode 算法对字符串进行编码。
count_chars() 返回有关字符串中所用字符的信息。
crc32() 计算字符串的 32 位 CRC。
crypt() 单向的字符串加密法(hashing)。
echo() 输出一个或多个字符串。
explode() 把字符串打散为数组。
fprintf() 把格式化的字符串写入到指定的输出流。
get_html_translation_table() 返回由 htmlspecialchars() 和 htmlentities() 使用的翻译表。
hebrev() 把希伯来文本转换为可见文本。
hebrevc() 把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>。
hex2bin() 把十六进制值的字符串转换为 ASCII 字符。
html_entity_decode() 把 HTML 实体转换为字符。
htmlentities() 把字符转换为 HTML 实体。
htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符。
htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。
implode() 返回由数组元素组合成的字符串。
join() implode() 的别名。
lcfirst() 把字符串的首字符转换为小写。
levenshtein() 返回两个字符串之间的 Levenshtein 距离。
localeconv() 返回本地数字及货币格式信息。
ltrim() 移除字符串左侧的空白字符或其他字符。
md5() 计算字符串的 MD5 散列。
md5_file() 计算文件的 MD5 散列。
metaphone() 计算字符串的 metaphone 键。
money_format() 返回格式化为货币字符串的字符串。
nl_langinfo() 返回特定的本地信息。
nl2br() 在字符串中的每个新行之前插入 HTML 换行符。
number_format() 以千位分组来格式化数字。
ord() 返回字符串中第一个字符的 ASCII 值。
parse_str() 把查询字符串解析到变量中。
print() 输出一个或多个字符串。
printf() 输出格式化的字符串。
quoted_printable_decode() 把 quoted-printable 字符串转换为 8 位字符串。
quoted_printable_encode() 把 8 位字符串转换为 quoted-printable 字符串。
quotemeta() 引用元字符。
rtrim() 移除字符串右侧的空白字符或其他字符。
setlocale() 设置地区信息(地域信息)。
sha1() 计算字符串的 SHA-1 散列。
sha1_file() 计算文件的 SHA-1 散列。
similar_text() 计算两个字符串的相似度。
soundex() 计算字符串的 soundex 键。
sprintf() 把格式化的字符串写入变量中。
sscanf() 根据指定的格式解析来自字符串的输入。
str_getcsv() 把 CSV 字符串解析到数组中。
str_ireplace() 替换字符串中的一些字符(对大小写不敏感)。
str_pad() 把字符串填充为新的长度。
str_repeat() 把字符串重复指定的次数。
str_replace() 替换字符串中的一些字符(对大小写敏感)。
str_rot13() 对字符串执行 ROT13 编码。
str_shuffle() 随机地打乱字符串中的所有字符。
str_split() 把字符串分割到数组中。
str_word_count() 计算字符串中的单词数。
strcasecmp() 比较两个字符串(对大小写不敏感)。
strchr() 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)
strcmp() 比较两个字符串(对大小写敏感)。
strcoll() 比较两个字符串(根据本地设置)。
strcspn() 返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。
strip_tags() 剥去字符串中的 HTML 和 PHP 标签。
stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。
stripslashes() 删除由 addslashes() 函数添加的反斜杠。
stripos() 返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen() 返回字符串的长度。
strnatcasecmp() 使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。
strnatcmp() 使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。
strncasecmp() 前 n 个字符的字符串比较(对大小写不敏感)。
strncmp() 前 n 个字符的字符串比较(对大小写敏感)。
strpbrk() 在字符串中查找一组字符的任何一个字符。
strpos() 返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrchr() 查找字符串在另一个字符串中最后一次出现。
strrev() 反转字符串。
strripos() 查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos() 查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strspn() 返回在字符串中包含的特定字符的数目。
strstr() 查找字符串在另一字符串中的第一次出现(对大小写敏感)。
strtok() 把字符串分割为更小的字符串。
strtolower() 把字符串转换为小写字母。
strtoupper() 把字符串转换为大写字母。
strtr() 转换字符串中特定的字符。
substr() 返回字符串的一部分。
substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
substr_count() 计算子串在字符串中出现的次数。
substr_replace() 把字符串的一部分替换为另一个字符串。
trim() 移除字符串两侧的空白字符和其他字符。
ucfirst() 把字符串中的首字符转换为大写。
ucwords() 把字符串中每个单词的首字符转换为大写。
vfprintf() 把格式化的字符串写到指定的输出流。
vprintf() 输出格式化的字符串。
vsprintf() 把格式化字符串写入变量中。
wordwrap() 打断字符串为指定数量的字串
⑨ php字符串
$str = "Hello world. It's a beautiful day.";
$arr = explode(".",$str,2);
print_r($arr);
//explode 使用方法
//http://cn2.php.net/manual/zh/function.explode.php