在php文件的JavaScript中转义<?php?>

Ste*_*eve 1 javascript php jquery

我有一个php文件index.php,它包含下面的jQuery/JavaScript代码.该代码定义了一个字符串,该字符串在获取到服务器之后将成为新的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('');
}
Run Code Online (Sandbox Code Playgroud)

Ja͢*_*͢ck 5

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('');
Run Code Online (Sandbox Code Playgroud)

更新

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

如果您仍想拍摄自己的脚,请按以下步骤操作:

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