gpt4 book ai didi

php - 在 php 文件的 JavaScript 中转义

转载 作者:行者123 更新时间:2023-11-30 08:50:33 25 4
gpt4 key购买 nike

我有一个 php 文件 index.php,其中包含下面的 jQuery/JavaScript 代码。该代码正在定义一个字符串,该字符串在通过 ajax 发送到服务器后将成为一个新的 PHP 文件。 index.php 加载正常,直到我将 PHP 行放在第一个数组成员中。然后当我加载 index.php 时,我得到:

SyntaxError: <html xmlns="http://www.w3.org/1999/xhtml"><head>

因为 index.php 是一个正在运行的 PHP 文件,我知道我必须转义前导 <<?php否则 PHP 处理器将跳入服务器。但显然我需要做的不止于此。有没有人看到我如何构造它以便加载 index.php 然后这段代码通过 <?php ?>作为一个无害的字符串?

$(function() {

var seg1 = ["\<?php phpinfo(); ?>\n",
"<!doctype html>\n ",
"<!-- HTML5 -->\n",
"<html>\n",
"<head>\n",
"<meta charset='utf-8' />\n",
"<title>MyPlace</title>\n" ,
"<script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'><\/script>\n",
"<script src='//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js'><\/script>\n"
].join('');
}

最佳答案

phpinfo() 自己生成一个 HTML 页面,因此将其与另一个文档连接起来并不完全符合规范。

也就是说,您可以先使用输出缓冲来捕获 phpinfo() 的输出,然后使用 json_encode() 对其进行正确转义:

<?php

ob_start();
phpinfo();
$info = ob_get_clean();

?>
$(function() {
var seg1 = [<?php echo json_encode($info); ?>,
"<!DOCTYPE html>\n" // etc etc
].join('');

更新

我误解了你的问题;似乎您允许在您的服务器上上传和执行任意 PHP 代码。这是非常危险,我的第一个建议是基本上放弃这个想法

如果您仍然想大干一场,方法如下:

var seg1 = ["<" + "?php phpinfo(); ?" + ">\n",
"<!DOCTYPE html>\n" // etc etc
].join('');

关于php - 在 php 文件的 JavaScript 中转义 <?php ?>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18222509/

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