phpstrstr中文,PHP strstr

发布时间:2022-11-23

本文目录一览:

1、PHP 查找中文字符串 2、php中strstr stristr strcchr 和strpos的区别 3、php 中的strstr()与strchr()的区别 4、PHP中如何判断一个字符串中是否有某个字符? 5、php strlen utf8一个中文算3个字节吗?

PHP 查找中文字符串

在PHP中查找中文字符,有两种方案: 将PHP保存为与欲查找中文一样的编码,然后使用strpos查找。 将PHP保存为UTF-8无BOM编码,然后转换字符串编码为UTF-8,再用strpos查找。 第一种方法:

strpos($curl_res, '中文');

第二种方法:

$str = mb_convert_encoding($str, 'utf-8', 'gbk');
mb_strpos($str, '中文');

注意:函数中的中文字符串参数的编码,必须要和PHP文件保存格式的编码一致。

php中strstr stristr strcchr 和strpos的区别

strstr — 查找字符串的首次出现,返回值是开始出现到字符串结尾的字符串。 stristrstrstr的忽略大小写版本,作用同上。 strrchr — 查找指定字符在字符串中的最后一次出现。 strpos — 查找字符串首次出现的位置。 没有strcchr这个函数。

php 中的strstr()与strchr()的区别

strchr()strstr()是同义函数。功能效用完全一样。

echo strstr('abc@123.com', '@'); // 默认返回查找值@之后的尾部,@123.com
echo strstr('abc@123.com', '@', TRUE); // 参数设定true, 返回查找值@之前的首部,abc

PHP中如何判断一个字符串中是否有某个字符?

PHP中如何判断一个字符串中是否有某个字符,如下: PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstrstrposstristr直接进行判断。也可以通过explode函数的作用写一个判断函数。

  1. strstr:返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含。
<?php
/*如手册上的举例*/
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
?>
  1. stristr:它和strstr的使用方法完全一样。唯一的区别是stristr不区分大小写。
  2. strpos:返回boolean值。FALSE和TRUE不用多说。用“===”进行判断。strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空。意思是判断整个字符串。缺点是对中文的支持不好。
<?php
$str = 'abc';
$needle = 'a';
$pos = strpos($str, $needle);
?>
  1. explode进行判断:
function checkstr($str) {
    $needle = "a"; // 判断是否包含a这个字符
    $tmparray = explode($needle, $str);
    if (count($tmparray) > 1) {
        return true;
    } else {
        return false;
    }
}

php strlen utf8一个中文算3个字节吗?

UTF-8是变长编码,不一定是3字节,可能是2~3,当然ASCII字符还是1字节。GBK也是变长编码,非ASCII的2字节,ASCII还是1字节。这两个编码对于非ASCII字符,都是多字节的,并且多字节字符每个字节都是小于127的,也就是负数(最高位是1)。当然,PHP里的strlen不是依靠判断字符串结尾的,因为PHP是脚本语言,它的字符串和C++的string是一样的,将存储的字节个数当作字符串长度。 PHP里想数数有多少个字节用strlen,想数数有多少个字符,用mb系列函数,自己去了解一下。还有些需求,比如字符串匹配查找之类的,GBK是存在双字节匹配问题的,两个连续汉字的中间2个字节可能被误认为其他字符,所以不能用strstr之类的字节匹配函数(PHP里是纯字节匹配的,不关心),但UTF-8是可以的,它不会有类似的冲突。另外最好的做法当然还是用mb系列,安全可靠,而且还支持猜编码功能。