php - 字符串分隔符ajax调用

标签 php javascript ajax string delimiter

因此 PHP 文件返回一个字符串(到 ajax 调用),如下所示:

$output = $sessID."###".$sessEmail."###".$sessFirstName."###".$sessLanguage."###".$sessRememberMe;

在 javascript 中我这样做:

    if (reply.indexOf("###") >= 0) {
    arrayReply = reply.split("###");
    user.ID = arrayReply[0];
    user.Email = arrayReply[1];
    user.FirstName = arrayReply[2];
    user.Language = arrayReply[3];
    user.RememberMe = arrayReply[4];
    }

当部分回复包含我使用的分隔符“###”时,可能会出现问题。在这种情况下我能做什么呢?在我看来,使分隔符变得更加复杂/罕见并不是一个解决方案。

PS:我确实尝试过 JSON,但它的服务器端速度慢得多。

最终编辑:

服务器端 JSON 速度较慢,客户端也是如此,但它不会成为瓶颈(100.000 次调用需要 430 毫秒),而且不需要像下面 Jules 所说的那样重新发明轮子。还有一个解决方案:php 中的 bin2hex() [将时间从 430 毫秒减少到 240 毫秒],然后使用 hex2string 函数在 javascript 中返回字符串,但是不值得付出努力。原来是 JSON。谢谢大家!

最佳答案

如果正如您所说,编码为 JSON 比您可以尝试以下方法慢,

$output = '"' . some_kind_of_escape_function($sessID).'","'.some_kind_of_escape_function($sessEmail).'","'.some_kind_of_escape_function($sessFirstName).'","'.some_kind_of_escape_function($sessLanguage).'","'.$sessRememberMe.'"';

当然,将 some_kind_of_escape_function 替换为适当的 php 函数(例如,addslashes 或 mysql_real_escape_string),自从我进行 PHP 开发以来已经有一段时间了,所以选择最适合您需求的一个

然后这是一个简单的情况,用逗号分割并删除引号

关于php - 字符串分隔符ajax调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10445839/

相关文章:

javascript - 如何修复 "no-param-reassign"eslint 错误?

php - 如果使用双倍空格,文本编辑器会被 chop

javascript - 在javascript中计算没有变量的数字

javascript - 非常奇怪的 jQuery/AJAX 行为

php - cakephp 内联错误消息 - 缺少数据库连接

php - 数组字段中的location字段的geo_point

php - 如何为通过 php 脚本发送的文本格式化电子邮件正文

javascript - PHP AJAX 过滤器问题

javascript - 有没有办法为一组事件发生时设置处理函数?

PHPExcel如何为行组设置折叠和展开?