【问题标题】:PHP: Losing characters when concatenating long stringsPHP:连接长字符串时丢失字符
【发布时间】:2011-12-16 13:05:46
【问题描述】:

我的应用程序构建了一个包含 html 链接的字符串发送给我的客户,以便他们下载他们的产品。

我基本上会遍历他们下达的命令并为mail() 函数生成一个字符串。

$links .= "<p><a href='http://www.example.com/dl/Downloadpage.php?reference=".$ref."&pass=".$passlink."&pid=".$product['pr_id']."'>Click here to download ".$product['Title']."</a></p>";

只要有5个或更多链接,我就会在其中一个链接中间丢失一个字符...例如http://ww.mysite.com 112098。

如果它在字符串的末尾,我本可以理解...有人知道发生了什么吗?

【问题讨论】:

  • 您能否向我们展示适用于该字符串的相关代码?更有可能是代码中存在错误而不是字符串连接。如果您能给我们提供操纵它的部件,我们有望为您指明正确的方向。
  • 不知道这是否会有所帮助,但是如果您将所有字符串推入一个数组然后 implode() 它来构建字符串而不是使用串联会发生什么?
  • 通常情况下,smtp 协议实现不允许在一行中超过 ~76 列/字符,然后在通信过程中会切断这些行。尝试将链接每行放置一行(用“\n”括起来)。
  • 您可以将字符串的输出写入屏幕而不是通过电子邮件发送吗?从 PHP 发送电子邮件时,字符可能会丢失。
  • 请测试$links .= "&lt;p&gt;&lt;a href='http://www.mysite.com/dl/Downloadpage.php?reference=".$ref."&amp;pass=".$passlink."&amp;pid=".$product['pr_id']."'&gt;Click here to download ".$product['Title']."&lt;/a&gt;&lt;/p&gt;\r\n"; ?

标签: php utf-8 concatenation character


【解决方案1】:

通常,smtp 协议实现在一行中不允许超过 ~76 列/字符,然后在通信过程中会切断这些行。尝试将链接每行放置一行(用“\n”括起来)。

请尝试: $links .= "&lt;p&gt;&lt;a href='http://www.mysite.com/dl/Downloadpage.php?reference=".$ref."&amp;pass=".$passl‌​ink."&amp;pid=".$product['pr_id']."'&gt;Click here to download ".$product['Title']."&lt;/a&gt;&lt;/p&gt;\r\n";

【讨论】:

    猜你喜欢
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多