我该怎么逃?

发布于 2024-12-10 18:44:43 字数 346 浏览 0 评论 0原文

它是一个简单的记录器功能。我想将数组加载到 DIV 内容中:

document.getElementById('layout').innerHTML = '<?php foreach ($logs as $item) { echo str_replace(array('"',"'"), array ('&quot;','&#039;'), $item).'<hr />'; } ?>';

因为 $logs 可以包含 HTML 元素,但不能包含引号,因为它们会破坏回显。应该没问题,但是 Firefox 说“格式错误的 Unicode 字符序列”并且不显示。现在怎么办?

its a simple logger function. I want to load an array to a DIV content:

document.getElementById('layout').innerHTML = '<?php foreach ($logs as $item) { echo str_replace(array('"',"'"), array ('"','''), $item).'<hr />'; } ?>';

because $logs can contain HTML elements, but not quotes, since they would ruin the echoing. It should be OK, but Firefox say "malformed Unicode character sequence" and it doesnt displayed. Now what?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小帐篷 2024-12-17 18:44:43

使用 html 实体 将 html 代码转换为安全序列

use html entities to translate your html code into safe sequencies

行雁书 2024-12-17 18:44:43

我可能是错的,但看起来您正在尝试使用 javascript 将 php 代码输入到您的页面中。 Javascript 是客户端,所以如果有的话,您将获得完整的代码,而不是解析的代码。

如果您希望预先运行 php,那么页面中的实际代码将是一个包含所有已解析内容的 javascript,您需要创建一个包含完成内容的字符串,并为 javascript 添加“'”明白了。

这可能看起来像这样(没有为您检查 foreach)

<?//this part is parsed before sending it to the client
   $conts = "'"; 
   foreach ($logs as $item) { 
        $conts .= str_replace(array('"',"'"), array ('"','''), $item);
        $conts .= "<hr/>";
   }
   $conts .= "'";
?>
document.getElementById('layout').innerHTML = <? echo $conts ?>;

I might be wrong, but it looks like you're trying to enter php code into your page using javascript. Javascript is client side, so if anything, you will get the full code, not the parsed code.

If you want the php to be run beforehand, so the actual code in your page will be a javascript that has the allready-parsed contents in it, you neet to make a string that contains the finished content AND add "'" for javascript to understand it.

This might look like this (haven't checked the foreach for you)

<?//this part is parsed before sending it to the client
   $conts = "'"; 
   foreach ($logs as $item) { 
        $conts .= str_replace(array('"',"'"), array ('"','''), $item);
        $conts .= "<hr/>";
   }
   $conts .= "'";
?>
document.getElementById('layout').innerHTML = <? echo $conts ?>;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文