php - echo '<?'; 返回空
PHPz
PHPz 2017-04-10 16:41:09
[PHP讨论组]

echo '<?';
输出为空,考虑到可能是被php 解析了
但是我想实现的是textare 中 输入php 语句 直接返回 php 解析后的结果
用 eval 可以实现 但是 不能返回什么错误,

所以想通过写文件,读文件的方式来解决
有什么好的解决方式吗

<?php
if(empty($_REQUEST)){

$html = <<< EOF

<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js&quot;></script>
<textarea id ="content" name="content" style="width: 100%;height: 300px" onkeydown="ctlSubmit(event)"></textarea>
<button id="button"> 提交</button>
<p id="eval"></p>
<script>

$("#button").click(
    function(){
        $("#eval").load('',{content:$("#content").val()});
    }
);
//ctrl +回车
function ctlSubmit(event) {
    if (event.ctrlKey && event.keyCode == 13) { $("#button").click() }
}

</script>
EOF;
echo $html;
}else{

$content = $_REQUEST['content'];

 $content = preg_replace('/;/',';',$content);// 分号容易犯错
    $string  = addslashes($content);
    // echo $string;
    // echo '<br/>';
    if(eval($string) === false){
        echo '输入错误';
    }

}

PHPz
PHPz

学习是最好的投资!

全部回复(1)
怪我咯

echo '<?'; 返回空 不是被PHP解析了 是被当成 HTML 标记了,你查看网页源代码看看……

你要输出带有 < > 等特殊符号的内容到网页上,要用 htmlspecialchars 函数进行处理的呀 …… 不是 addslashes , addslashes 是用来处理 SQL 过滤的……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号