PHP:抛光$ _POST中的国家标志 - strlen和mb_strlen错误的值

时间:2011-01-02 01:05:09

标签: php post utf-8 substr

我现在处于绝望状态,因为我尝试了所有我发现的东西,但仍然无法得到我需要的结果,因为我承诺纠正朋友的网站。

这是问题所在:

我通过$ _POST获得一个字符串,它必须是:

  1. 从任何html标签清除(我通过strip_tags做得很好):
  2. 然后,它需要正好1000个字符长,这里我的痛苦开始:它必须使用多字节字符,如波兰标志。
  3. 现在我试图用以下内容剪切文字:

    • mb_substr($此,0,1000, 'UTF-8')
    • mb_substr($ this,0,1000)

    • SUBSTR($此,0,10000)

    我总是得到错误的结果:最后的字符串总是短于1000个字符,我不知道为什么。你可以帮我这个吗?

    也许这会有用:

    我粘贴到表单的文字是:

    Ciekawy, nieco sportowy wygląd, nisko zamontowana kanapa, dobre hamulce, niezłe podwozie, znakomita zwrotność, dynamiczny silnik – oto cechy którymi GS500E zdobywał rynek i pokonywał rywali w testach porównawczych. W 1992 r. postawiono go nawet do konfrontacji z większą Yamahą XJ600S Diversion i nowocześniejszym Kawasaki GPZ500S. Co prawda przegrał, ale też nie było szans, by walczył jak równy z równym. Ważniejsze były oceny, które wystawili mu dziennikarze z prasy fachowej. Zaskoczeniem było przede wszystkim to, że tak tani motocykl może prezentować tak wysoki poziom w zakresie mocy i charakterystyki silnika. Chwalono również hamulce i podwozie. W drugiej połowie lat dziewięćdziesiątych GS500E zaczął wyraźnie przegrywać w testach porównawczych. Nie mógł już dotrzymać kroku zupełnie nowym konstrukcjom pokroju Hondy CB500 czy Kawasaki ER-5. Nadal cieszy się jednak zainteresowaniem nabywców a jako motocykl o bardzo uniwersalnym charakterze trafia zarówno w ręce początkujących jaki i doświadczonych motocyklistów.
    

    然后我想把它削减到最多1000个字符:

    $ok_to_go_to_database = mb_substr( strip_tags($long_text) ,0,1000);
    

    在这种情况下,它给了我931个字符:/

1 个答案:

答案 0 :(得分:2)

>>> len(u'Ciekawy, nieco sportowy wygląd, nisko zamontowana kanapa, dobre hamulce, niezłe podwozie, znakomita zwrotność, dynamiczny silnik – oto cechy którymi GS500E zdobywał rynek i pokonywał rywali w testach porównawczych. W 1992 r. postawiono go nawet do konfrontacji z większą Yamahą XJ600S Diversion i nowocześniejszym Kawasaki GPZ500S. Co prawda przegrał, ale też nie było szans, by walczył jak równy z równym. Ważniejsze były oceny, które wystawili mu dziennikarze z prasy fachowej. Zaskoczeniem było przede wszystkim to, że tak tani motocykl może prezentować tak wysoki poziom w zakresie mocy i charakterystyki silnika. Chwalono również hamulce i podwozie. W drugiej połowie lat dziewięćdziesiątych GS500E zaczął wyraźnie przegrywać w testach porównawczych. Nie mógł już dotrzymać kroku zupełnie nowym konstrukcjom pokroju Hondy CB500 czy Kawasaki ER-5. Nadal cieszy się jednak zainteresowaniem nabywców a jako motocykl o bardzo uniwersalnym charakterze trafia zarówno w ręce początkujących jaki i doświadczonych motocyklistów.'.encode('cp1250').decode('utf-8', 'ignore'))
929

CRLF制作了931。

Check your HTTP headers. Make sure that you are really receiving data in UTF-8 and not CP1250.