Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试替换字符串时php中的分析错误_Php_Javascript - Fatal编程技术网

尝试替换字符串时php中的分析错误

尝试替换字符串时php中的分析错误,php,javascript,Php,Javascript,我有以下代码行: foreach ($searchResults as $key=>$question) { echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>'; echo '<td class="optiontypetd">'.htmlspecialchars($searchOption[$key]).'</td>'; e

我有以下代码行:

     foreach ($searchResults as $key=>$question) {

 echo '<tr class="questiontd"><td>'.htmlspecialchars($question).'</td>';
 echo '<td class="optiontypetd">'.htmlspecialchars($searchOption[$key]).'</td>';
 echo '<td class="noofanswerstd">'.htmlspecialchars($searchNoofAnswers[$key]).'</td>';
 echo '<td class="answertd">'.htmlspecialchars($searchAnswer[$key]).'</td>';
 echo '<td class="noofrepliestd">'.htmlspecialchars($searchReply[$key]).'</td>';
 echo '<td class="noofmarkstd">'.htmlspecialchars($searchMarks[$key]).'</td>';
 echo "<td class='addtd'><button type='button' class='add' onclick=\"parent.addwindow('$question','$searchMarks[$key]','$searchNoofAnswers[$key]','$searchOption[$key]','$searchReply[$key]','$searchAnswer[$key]');\">Add</button></td></tr>";
}
foreach($searchResults作为$key=>$question){
echo.''htmlspecialchars($问题)。'';
echo'.htmlspecialchars($searchOption[$key])。';
echo'.htmlspecialchars($searchNoofAnswers[$key])。';
echo'.htmlspecialchars($searchAnswer[$key])。';
echo'.htmlspecialchars($searchReply[$key])。';
echo'.htmlspecialchars($searchMarks[$key])。';
附和“添加”;
}
现在我想用str_repace替换一些字符串,但当我这样做时,我在上面的一行中得到了这个错误:

分析错误:语法错误,意外的T\u常量\u已装入\u字符串 …第154行的text.php

如何删除此错误

更新:

好的,我删除了前面提到的单引号,但问题是它弄乱了我的添加按钮。现在,当我单击“添加”按钮时,出现此错误:

syntaxError:未终止的字符串文字错误:

parent.addwindow(“

控制台中显示错误的代码行如下所示:

<button type='button' class='add' onclick="parent.addwindow('!"�$%^&*()-=\'.,:;/?#~*/\\><'

T_常量_封装_字符串
基本上是一个引号不匹配。StackOverflow的语法高亮显示使颜色变化更加明显

$question')
删除单一报价,你应该是好的

后续行动:

选择: 如前所述,您可以使用
herdeoc
(尽管我个人认为从可读性的角度来看,这在这个特定场景中没有帮助——您仍然在HTML语法中嵌入了很多变量)。另一种方法是将
parent.addwindow
参数存储为变量,然后在字符串中传递它(避免使用扩展回显线路和担心报价不匹配。例如:

$addWindowArgs = "'" . implode("','", array(
  str_replace('"','&quot;', $question),
  $searchMarks[$key],
  $searchNoofAnswers[$key],
  $searchOption[$key],
  $searchReply[$key],
  $searchAnswer[$key]
)) . "'";

echo  "<td class=\"addtd\">"
    . "<button type=\"button\" class=\"add\" onclick=\"parent.addwindow({$addWindowArgs});\">Add</button>"
    . "</td></tr>";

如果某些参数是数字,某些参数是字符串等,这将为您提供更多的控制。

在输出html/js时使用heredoc语法——您会发现它更容易阅读,也不太可能出错。@Cups如何使用heredoc语法?google
heredoc php
并获得启发!尝试删除单引号$question后面的标记(')最大的问题是在使用herdoc时不要习惯性地缩进代码。每次我都会这样做——尤其是最后一行!问题是,如果我删除了引号,那么所有变量都会进入“Add”按钮,它弄乱了按钮,所以我需要引用,这是否意味着我需要在某处添加一个额外的引用?让我对我的问题进行更新,以便您可以看到问题的更新,以便您可以看到我在删除quote@user1701484:查看我的最新答案。(在我看来,你的问题是你把单引号放在哪里——它需要在一组双引号中。嗨,对不起,我不得不跑腿,我已经发布了主代码,这样你可以在问题的顶部看到代码是什么样子。如果你编辑你的答案以适应我的代码,可以吗?因为当你尝试使用你的方法时,它会给我带来问题,因为echos的e。这只是$QUEST变量给我带来了问题。其他变量不会遇到这个问题。谢谢:)没关系,我解决了,谢谢你的帮助tho:)
$addWindowArgs = sprintf("'%s','%s','%s','%s','%s','%s'",
  str_replace('"','&quot;', $question),
  $searchMarks[$key],
  $searchNoofAnswers[$key],
  $searchOption[$key],
  $searchReply[$key],
  $searchAnswer[$key]
);