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)
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)
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |