Interwebs对此没有帮助.我们正在使用ColdFusion编码数据serializeJSON并尝试使用PHP解码它json_decode.大多数情况下,这工作正常,但在某些情况下,json_decode返回NULL.我们已经找到了明显的罪魁祸首,但是serializeJSON似乎正在按预期格式化.还有什么可能是问题?
更新:一些人(明智地)要求我发布导致问题的输出.我会,除了我们刚刚发现结果集是我们所有的数据(列出2300+租赁属性的信息,总共565,135个ASCII字符)!这可能是个问题,尽管我在PHP文档中没有看到任何关于字符串最大大小的内容.会有什么限制因素?内存?
更新II:看起来问题是我们的几个用户使用"智能"引号复制并粘贴了Microsoft Word文本.那些讨厌的用户......
我遇到了一个问题,我正在使用一个非常基本的RTE来获取用户输入,并在使用RTE提供的函数发布时从字符串中修剪垃圾.我正在使用 http://premiumsoftware.net/cleditor
用户提交数据后,我用PHP解析它并删除不需要的内容.大多数用户都是Linux/Mac用户,他们通常会复制电子邮件/ word文档中的内容并将其粘贴到RTE中,从而导致大量垃圾.
我们还需要允许使用任何语言的所有UTF8字符.
说完这一切,请查看此图片

正如您所看到的,在颜色注释中没有可见的特殊字符,如果我从MYSQL复制它并将其粘贴到任何地方,就不会有垃圾.但是如果我将值转换为HEX你可以看到,那里有一个奇怪的字符.用黄色突出显示.
有没有办法过滤这类问题.它导致我的PDF生成脚本停止工作
我需要清理以下 PHP 数组并删除所有空变量。该数组是由从第三方软件复制的字符串组成的,并且包含大量换行符。
下面列出了我尝试过但失败的方法。
数组:
Array (
[0] =>
[1] => 1.BOB/SMITH RANI MRS
[2] => 2.JON/SMITH MSTR(CHD/01NOV01)
[3] =>
[4] => 3.BOB/JONES MSTR(CHD/01JUN01)
[5] => 4 EK 004 U 26JUL 6*LHRDXB HK3 2040 0630 27JUL E EK/GAQNL2
[6] => 5 EK 584 U 27JUL 7*DXBDAC HK3 1315 1955 27JUL E EK/GAQNL2
[7] => 6 EK 583 U 09SEP 2*DACDXB HK3 1015 1305 09SEP E EK/GAQNL2
[8] => 7 EK 005 U 09SEP 2*DXBLHR HK3 1545 2015 09SEP E EK/GAQNL2 …Run Code Online (Sandbox Code Playgroud) 我已经在整个网络和Stackoverflow上搜索了这个问题的答案.似乎没有任何帮助.这应该是一个非常简单的功能.我有多个具有相同内容的记录,除了名为level的字段.我想找到级别中int值最高的记录.一个例子是我有多个记录具有相同的用户ID和电子邮件,但第一个记录从级别1开始,下一个记录可以是级别2,然后下一个可能再次是级别1.我想找到level = 2的记录.我的代码非常简单.
$LoginRS__query=sprintf("SELECT userid, email, level FROM orders WHERE userid=%s AND email=%s ORDER BY level DESC LIMIT 1", GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
Run Code Online (Sandbox Code Playgroud)
对于一些人来说这是正常的,返回记录的水平= 2,3,8,9,等等.对于其他人,它只返回level = 1的记录.字段级别为int length 1.我正在运行php Version 5.3.28和MySQL 5.5.36
任何人的想法?像大多数人一样,我很匆忙.谢谢...
我没有意识到这个级别是一个保留字.我一直在使用相同的表定义并使用级别编写其他脚本,直到现在都没有问题.我正在检查错误,它没有返回任何错误.使用foreach检查结果时($ row_LoginRS为$ key => $ val)echo $ key.":".$ val."
"; 我通常得到:userid:9999 email:email@email.com level:1(或2或3).
这看起来很正确.
我按照建议 - 舍入选择用户ID,电子邮件,level...和/或/和ORDER BY'级别'并尝试将其包括在内:它返回:userid:9999 email:email@email.com level:level
我的原始查询看起来是正确的:
string(120) "
SELECT userid, email, level FROM orders WHERE userid='9999' AND email='email@email.com' ORDER BY level DESC LIMIT 1
"
Run Code Online (Sandbox Code Playgroud)
当我使用刻度时,我得到:
string(120) "
SELECT userid, …Run Code Online (Sandbox Code Playgroud)