php echo会中途停止渲染页面,而laravel刀片模板工作正常

php echo会中途停止渲染页面,而laravel刀片模板工作正常,php,database,laravel,Php,Database,Laravel,我有一个mcqs网站,问题是当我尝试加载一个包含多个问题及其答案的测验页面时,它加载得很好 工作代码: 我有一对多关系设置,所以我可以使用$question->answers提取问题的答案 当我不回应任何答案内容时,它工作正常 任何帮助都将不胜感激。谢谢 看起来像是未替换文本的问题。当您使用刀片模板的转义方法{{}时,它是成功的。使用unescaped方法时,{!!!!}它会失败。这与使用unscaped php echo时是一样的 您的问题中可能有某种类型的字符导致循环中断或php回音 要修复

我有一个mcqs网站,问题是当我尝试加载一个包含多个问题及其答案的测验页面时,它加载得很好

工作代码:

我有一对多关系设置,所以我可以使用$question->answers提取问题的答案 当我不回应任何答案内容时,它工作正常


任何帮助都将不胜感激。谢谢

看起来像是未替换文本的问题。当您使用刀片模板的转义方法{{}时,它是成功的。使用unescaped方法时,{!!!!}它会失败。这与使用unscaped php echo时是一样的

您的问题中可能有某种类型的字符导致循环中断或php回音

要修复,请在echo中使用blade escape{{}或php escape等


也值得检查。

可能有助于显示内容}}失败的确切行?您是在使用blade还是说您在php中使用了该符号,但失败了?很抱歉,我更新了问题,当我使用{!!$answer->content!!}时,它失败了。这与echo$answer->content相同非常感谢,使用echo-htmlspecialchars$answer->content解决了我的问题。但是这并没有回显HTML,它只回显字符串形式的HTML!是的,这解决了问题——显然是某个角色停止了循环。正如您所注意到的,您现在正在生成转义文本,而不是HTML。这解决了原来的问题,但现在您必须在屏幕上打印想要的字符。您需要在输入到达DB之前清除它,或者在显示中取消转义它。如果有什么东西打破了你的循环,你最好清理一下你的数据。但是,如果您想显示原始标记,请研究php escape以及如何显示这些字符串:在一个答案中,它打破了循环。我在哪里可以找到破坏代码的字符列表,以及在需要时可以对它们执行哪些操作以将它们显示为字符串而不是html;例如,仅仅是向浏览器发出某事即将到来的信号的字符,或者像PHP这样的语言,表示该结束一行了。有趣的是,你不能在这个网站的评论中键入一个未被忽略的注释!对于显示-研究如何将字符串翻译回来-这将取决于您如何编码/转义它们,但这是一个很好的教训,因为您必须从编码和解码的两个方面来决定如何进行。
@foreach ($question->answers as $answer)
                  <span style="display:inline-block">
                      {{$answer->content}}
                   </span>
@endforeach
@foreach ($question->answers as $answer)
              <span style="display:inline-block">
                  {!! $answer->content !!}
               </span>
@endforeach


{!! $answer->content !!} is the same as echo $answer->content
 $questions = Question::all()->where('exam_id',$exam_id)->random($questionsCount)->shuffle();
 return view('quiz',compact('exam','questions','questionsCount','t'));