> 백엔드 개발 > PHP 튜토리얼 > strrchr后输出结果不同

strrchr后输出结果不同

WBOY
풀어 주다: 2016-06-06 20:20:00
원래의
1337명이 탐색했습니다.

<code>$str1 = "test:http://google.com,http://hbaidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;</code>
로그인 후 복사
로그인 후 복사

输出结果应该是:

<code>http://hbaidu.com</code>
로그인 후 복사
로그인 후 복사

但是为什么输出结果是:

<code>baidu.com</code>
로그인 후 복사
로그인 후 복사

如果把代码中http://hbaidu.com的h去掉

<code>$str1 = "test:http://google.com,http://baidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;</code>
로그인 후 복사
로그인 후 복사

结果输出是:

<code>http://baidu.com</code>
로그인 후 복사
로그인 후 복사

请问各位大神这是为什么?谢谢

回复内容:

<code>$str1 = "test:http://google.com,http://hbaidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;</code>
로그인 후 복사
로그인 후 복사

输出结果应该是:

<code>http://hbaidu.com</code>
로그인 후 복사
로그인 후 복사

但是为什么输出结果是:

<code>baidu.com</code>
로그인 후 복사
로그인 후 복사

如果把代码中http://hbaidu.com的h去掉

<code>$str1 = "test:http://google.com,http://baidu.com";
$str2 = strrchr($str1,"http://");
echo $str2;</code>
로그인 후 복사
로그인 후 복사

结果输出是:

<code>http://baidu.com</code>
로그인 후 복사
로그인 후 복사

请问各位大神这是为什么?谢谢

建议先看看 strrchr 的文档

http://php.net/manual/zh/function.strrchr.php

<code>string strrchr ( string $haystack , mixed $needle )
</code>
로그인 후 복사

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

haystack
在该字符串中查找。

needle
如果 needle 包含了不止一个字符,那么仅使用第一个字符。该行为不同于 strstr()。
如果 needle 不是一个字符串,那么将被转化为整型并被视为字符顺序值。

也就是说,后面的参数只识别第一个字符, 也就是只识别你的 hh 之后的参数全部忽略。如果要使用字符串,需要换用 strpos 等其他支持字符串查询的函数。

(注:楼上的说明也是不准确的,这个和 trim 也不一样,strrchr 只识别第一个字符,其他的字符无效,而不是一个个尝试)

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿