【发布时间】:2011-06-02 08:58:44
【问题描述】:
我现在很绝望,因为我尝试了我找到的所有东西,但仍然无法很快得到我需要的结果,因为我答应纠正朋友的网站。
问题来了:
我通过 $_POST 得到一个字符串,它必须是:
- 从任何 html 标签中清除(我通过 strip_tags 进行:效果很好)
- 那么,它的长度必须正好是 1000 个字符,而我的痛苦从这里开始:它必须与多字节字符(例如波兰符号)一起使用。
现在我尝试用以下方式剪切文本:
- mb_substr($this,0,1000,'UTF-8')
- mb_substr($this,0,1000)
和
- substr($this,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 个字符:/
【问题讨论】:
-
那么,传入的字符串是否长超过1000个字符?
-
嗨 Pekka,它总是更短:我不知道那些额外的标志是什么:/,如果我将 1613 个字符的长文本复制并粘贴到表单中,mb_strlen 显示这个长度:1733如果我用 mb_substr($this,0,1000) 剪切它,我得到的只是前 929 个字符 - 我很困惑
-
标题说传入的字符集是什么?
-
嗨,Ignacio,该页面设置为 UTF-8,但如果您指的是字符串本身的字符集 - 我不知道如何检查它
-
sorry Pekka:你问到传入的字符串:是的,它比 1000 长