strpos()和strstr()两个函数的区别 php手册定义如下:strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感) strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) 高手们能说下两个函数各自什么时候用吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string strstr(string haystack,string needle)返回haystack中从第一 个needle开头到haystack末尾的字符串。如果未找到needle 返回false。int strpos(string haystack, string needle [,int offset]) 返回haystack中第一个出现needle的位置数字量。如果未找到needle返回false。---------------------------------------------------------------------------------------------http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务 <?php $fp = opendir("C:/AppServ/MySQL"); while($file = readdir($fp)){ if($file != "." and $file != ".."){ $s1 = strpos($file,"."); //查找点出现的位置 echo substr($file,$s1)."<br />"; //从出现点的地方开始截取输出 } }?> strchr 返回找到字符第1次出现和后面的字符串(字符串)strpos 返回找到字符串出现第1次字符位置(数字) 手册的解释已经非常清楚了:strpos(PHP 4, PHP 5)strpos — 查找字符串首次出现的位置说明int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )返回 needle 在 haystack 中首次出现的数字位置。与 strrpos() 不同,在 PHP 5 之前,该函数可以使用一个完整字符串作为 needle,并且整个字符串都将被使用。 参数haystack 在该字符串中进行查找。 needle 如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。 offset 可选的 offset 参数可以用来指定从 haystack 中的哪一个字符开始查找。返回的数字位置是相对于 haystack 的起始位置而言的。 返回值以整型返回位置信息。如果没找到 needle,strpos() 将返回布尔型的 FALSE 值。 Warning此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值,例如 0 或 ""(空串)。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符 来测试此函数的返回值。范例Example #1 使用 ===<?php$mystring = 'abc';$findme = 'a';$pos = strpos($mystring, $findme);// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,// 因为 'a' 是第 0 位置上的(第一个)字符。if ($pos === false) { echo "The string '$findme' was not found in the string '$mystring'";} else { echo "The string '$findme' was found in the string '$mystring'"; echo " and exists at position $pos";}?> Example #2 使用 !==<?php$mystring = 'abc';$findme = 'a';$pos = strpos($mystring, $findme);// 使用 !== 操作符。使用 != 不能像我们期待的那样工作,// 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。if ($pos !== false) { echo "The string '$findme' was found in the string '$mystring'"; echo " and exists at position $pos";} else { echo "The string '$findme' was not found in the string '$mystring'";}?> Example #3 使用位置偏移量<?php// 忽视位置偏移量之前的字符进行查找$newstring = 'abcdef abcdef';$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0?> 注释Note: 此函数可安全用于二进制对象。 strstr(PHP 4, PHP 5)strstr — 查找字符串的首次出现说明string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。 Note: 该函数区分大小写。如果想要不区分大小写,请使用 stristr()。 Note: 如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。 参数haystack 输入字符串。 needle 如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。 before_needle 若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。 返回值返回字符串的一部分或者 FALSE(如果未发现 needle)。 更新日志版本 说明 5.3.0 新增可选的 before_needle 参数。 4.3.0 strstr() 成为二进制安全的。 范例Example #1 strstr() 范例<?php$email = '[email protected]';$domain = strstr($email, '@');echo $domain; // 打印 @example.com$user = strstr($email, '@', true); // 从 PHP 5.3.0 起echo $user; // 打印 name?> string strstr(string haystack,string needle)返回haystack中从第一 个needle开头到haystack末尾的字符串。如果未找到needle 返回false。int strpos(string haystack, string needle [,int offset]) 返回haystack中第一个出现needle的位置数字量。如果未找到needle返回false。 问个curl参数的问题 寻PHP牛人入伙 连不了数据库,对虚拟主机这块不熟悉 贴下你最近项目的AB值? 新手入门,高手指点! 使用phpMyAdmin 建立多个用户管理各自的数据库,到底那里配置? 制作WEB编辑器问题. 关于方便团队开发的程序架构,大家说说怎样方便? APACHE 1.28+RED HAT 9中文问题 如果限制登陆用户??? Fatal error: Maximum execution time of 30 seconds exceeded in...on line 10 球段代码
返回haystack中从第一 个needle开头到haystack末尾的字符串。
如果未找到needle 返回false。
int strpos(string haystack, string needle [,int offset])
返回haystack中第一个出现needle的位置数字量。
如果未找到needle返回false。
---------------------------------------------------------------------------------------------
http://www.jiemengwu.com/ 解梦屋 http://www.phpzy.com/php/ 绿色php资源http://www.shopfw.com网店服务
$fp = opendir("C:/AppServ/MySQL");
while($file = readdir($fp)){
if($file != "." and $file != ".."){
$s1 = strpos($file,"."); //查找点出现的位置
echo substr($file,$s1)."<br />"; //从出现点的地方开始截取输出
}
}
?>
strpos 返回找到字符串出现第1次字符位置(数字)
(PHP 4, PHP 5)strpos — 查找字符串首次出现的位置说明
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
返回 needle 在 haystack 中首次出现的数字位置。与 strrpos() 不同,在 PHP 5 之前,该函数可以使用一个完整字符串作为 needle,并且整个字符串都将被使用。 参数haystack
在该字符串中进行查找。 needle
如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。 offset
可选的 offset 参数可以用来指定从 haystack 中的哪一个字符开始查找。返回的数字位置是相对于 haystack 的起始位置而言的。
返回值
以整型返回位置信息。如果没找到 needle,strpos() 将返回布尔型的 FALSE 值。 Warning
此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值,例如 0 或 ""(空串)。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符 来测试此函数的返回值。范例Example #1 使用 ===<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
// 因为 'a' 是第 0 位置上的(第一个)字符。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
?>
Example #2 使用 !==<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);// 使用 !== 操作符。使用 != 不能像我们期待的那样工作,
// 因为 'a' 的位置是 0。语句 (0 != false) 的结果是 false。
if ($pos !== false) {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
} else {
echo "The string '$findme' was not found in the string '$mystring'";
}
?>
Example #3 使用位置偏移量<?php
// 忽视位置偏移量之前的字符进行查找
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, 不是 0
?> 注释
Note: 此函数可安全用于二进制对象。
(PHP 4, PHP 5)strstr — 查找字符串的首次出现说明
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。 Note: 该函数区分大小写。如果想要不区分大小写,请使用 stristr()。
Note: 如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。
参数haystack
输入字符串。 needle
如果 needle 不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。 before_needle
若为 TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。
返回值
返回字符串的一部分或者 FALSE(如果未发现 needle)。 更新日志
版本 说明
5.3.0 新增可选的 before_needle 参数。
4.3.0 strstr() 成为二进制安全的。
范例Example #1 strstr() 范例<?php
$email = '[email protected]';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?>
返回haystack中从第一 个needle开头到haystack末尾的字符串。
如果未找到needle 返回false。
int strpos(string haystack, string needle [,int offset])
返回haystack中第一个出现needle的位置数字量。
如果未找到needle返回false。