php手册定义如下:
strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感) 
strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) 
高手们能说下两个函数各自什么时候用吗?

解决方案 »

  1.   

    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网店服务
      

  2.   

    <?php
    $fp = opendir("C:/AppServ/MySQL");
    while($file = readdir($fp)){
    if($file != "." and $file != ".."){
    $s1 = strpos($file,"."); //查找点出现的位置
    echo substr($file,$s1)."<br />"; //从出现点的地方开始截取输出
    }
    }
    ?>
      

  3.   

    strchr 返回找到字符第1次出现和后面的字符串(字符串)
    strpos 返回找到字符串出现第1次字符位置(数字)
      

  4.   

    手册的解释已经非常清楚了: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: 此函数可安全用于二进制对象。
      

  5.   

    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
    ?> 
      

  6.   

    string strstr(string haystack,string needle)
    返回haystack中从第一 个needle开头到haystack末尾的字符串。
    如果未找到needle 返回false。
    int strpos(string haystack, string needle [,int offset])  
    返回haystack中第一个出现needle的位置数字量。
    如果未找到needle返回false。