gpt4 book ai didi

php - 在 php 中回显 html 是否可能导致 html 输出错误?

转载 作者:行者123 更新时间:2023-11-27 23:19:35 24 4
gpt4 key购买 nike

我有一个 for在 php 中循环,一遍又一遍地回显相同的文本,并通过电子邮件将其发送给我。我只是用它来检查代码是否每天都执行过,结果是什么。

这是代码的简短版本:

for ($x = 0; $x < $max; $x++) { 

if (strlen($var)== 9) {
// code to send things via curl has been removed
$thismessage = " " . $var. " some text <b>bold text</b> some text " . $var2. "<br>";
$message = $message . $thismessage;
} else {
$thismessage = "other text<br>";
//$message = $message . $thismessage;
}
}

然后我发送 $message到我的电子邮件。这个 php 文件每天运行,用于向过生日的客户发送短信。发送给我的消息基本上是一行,说这个客户 ($var) 今天过生日,并收到一条消息(粗体)到这个电话号码 ($var2)。很多时候,一切正常。客户一直收到他们的消息,因此每个代码都在执行。令我惊讶的是我在电子邮件中收到的结果。

通常我会得到这样的结果(这正是我所期望的):

var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2

但我经常得到这样的结果:

var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2

一旦我得到这个:

var1 some text bold text some text var2
var1 some text bold text some text var2
var1 some text bold text< /b> some text var2
var1 some text bold text some text var2
var1 some text bold text some text var2

所以它看起来像 </b>有时会被跳过或添加一个空格,因此它不会呈现为代码。但是当它在(比方说)第 3 行中被跳过时,它也会在以下所有行中被跳过。我很惊讶这似乎是随机发生的,因为这是一个 for循环,它是重复使用的相同代码,所以并不是代码中有错误(或者至少我认为)。

我认为 php 和 html 应该在逻辑上每次都以相同的方式运行。

我的问题是:

在 php 中回显 html 会不会导致 html 输出错误?或者我只是做错了什么?

编辑这是代码的长版本

for ($x = 0; $x < $fjoldi; $x++) { 
$kennitala = $complete[$x][kennitala];
if (strlen($kennitala)== 9) {
$kennitala = "0" . $kennitala;
}
if (substr($kennitala, 0, 4) == date("dm")) {
$simanumer = $complete[$x][simi];

$url = 'https:....';
$url = $url . '&T=Text to send';
$url = $url . '&unicode=1';
$execute = curl_init();
curl_setopt($execute, CURLOPT_URL, $url);
curl_exec($execute);
curl_close ($execute);

$thismessage = " " . $kennitala . " á afmæli í dag og <b>fékk sms</b> í númer " . $simanumer . "<br>";
echo $thismessage;
$message = $message . $thismessage;


} else {
$thismessage = " " . $kennitala . " á ekki afmæli í dag og fær ekki sms í númer " . $complete[$x][simi] . "<br>";
echo $thismessage;
//$message = $message . $thismessage;
}
}

编辑 3 - 新信息我只是注意到错误似乎总是从第 13 行开始。是否有可能 php 中的变量不能包含超过特定字符数的 html 代码?我还注意到,通常第一个变量包含 10 个字符,第二个变量包含 7 个字符,但是当一个字符被添加到第一个变量中的一行时,我得到了 错误。

编辑 4我注意到我的错误总是出现在 150 个单词(747 个字符)之后。我得到了超过 150 个单词的结果,一切都很好,但我得到的错误是在 150 个单词(747 个字符)之后产生的

最佳答案

您的问题可能出在更远的地方,与电子邮件发送有关。 PHP mail function指定 $message 参数的每一行不得超过 70 个字符,并用 CRLF (\r\n) 分隔。如果不是这种情况,也许 mail() 正在为您做这件事,有时 HTML 标记最终会被 CRLF 一分为二。

关于php - 在 php 中回显 html 是否可能导致 html 输出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com