灵异事件.快来看strstr 和 strpos 把两个不同的字符串匹配成功了.$row1="不断";
$text="喜欢香蕉";
if($row1)
if(strstr($text,$row1)){
exit(strstr($text,$row1));///////////////////这句被执行了.....?????????
}你们试一下看看是不是

解决方案 »

  1.   

    为什么我这边出现了呢.后台代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <body>
    <?php
    $row1="不断";
    $text="喜欢香蕉";
    if($row1)
    if(strstr($text,$row1)){
    exit(strstr($text,$row1));
    }
    exit;
    ?>
    </body>
    </html>执行后,前面HTML<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <body>
    不断憬 
      

  2.   

    编码的问题:
    <?php
    $text = iconv('UTF-8', 'GB2312', '不断');
    $text2 = iconv('UTF-8', 'GB2312', '喜欢香蕉');
    var_dump(urlencode($text), urlencode($text2));
    string(12) "%B2%BB%B6%CF"
    string(24) "%CF%B2%BB%B6%CF%E3%BD%B6"计算机只认一个字节的,所以把“ 喜 ”字和 “ 香 ”切成两半,就和 ” 不断 “ 重复了,再有 "%E3%BD%B6"
      

  3.   

    这是因为国标汉字是由两个字节组成的,而字符串函数是按字节处理的
    所以就不能避免你遇到的现象了同样问题,不同的人就有不同的处理方式
    在国内,大多数人会建议你去使用 utf-8 编码,宁可去浪费那多出的50%存储空间。可见还是很有钱的
    在日本(日文编码也是双字节的),就有人开发了 mb_string 扩展。并奉献出来供地球人使用,用以解决双字节带来的问题
      

  4.   

    gbk这种问题实属无奈,必须用mb库处理了.