回 帖 发 新 帖 刷新版面

主题:如何echo php源码(不是高亮那种)

查询数据库后,当返回值里包含<?php ?>之类的标记时,比如
$result= '<?php ..... ?>'
如何能将result中的内容按普通文本的方式输出?

另,如果在查询数据库时,字段中包含php源码的时候,同样也会出现错误,请问如果解决?

先表示感谢:)

回复列表 (共9个回复)

沙发

不知你要的是不是这两个函数:
StripSlashes()
htmlspecialchars()

板凳

非常感谢!

php初学哈,好多东西摸索中T_T

3 楼

再提个问:
假设数据库中有一个字段是

“<?php echo 'test'; ?>”或者“<?php echo "test"; ?>”

读取后放入变量$v中,

现在假设我要在一个<input type="text" name="t" value = "">中给它一个初值$v,

这样就写成了<input type="text" name="t" value = "<?php echo $v;?>">,替换完之后就会出现问题,请问这有比较好的解决办法吗?

4 楼

我把你在3楼说的做了一下,结果如下:

当从记录集中取出那个“<?php echo 'test'; ?>”放入变量$v中后,
做输入框<input type="text" name="t" value = "<?php echo $v;?>">,
这时输入框中显示<?php echo 'test'; ?>

如果要进一步调用输入框中的文本:
echo $t;       //结果是空显
echo $v;       //结果显示<?php echo 'test'; ?>

所以要调用那个文本时,用$v,别用$t。
不知我对你的问题理解的对不对。

5 楼

谢谢你的回复。

问题就在<input type="text" value = "<?php echo $v;?>">这一块

如果里面写的是values = ""(双引号),好,那么$v为字段“<?php echo 'test'; ?>”(单引号)是没有问题的,但是当如果字段为“<?php echo "test"; ?>”(双引号)时,就会出问题了。

同理,如果里面写的是values = ''(单引号),则……

再者,如果字段是“hello "word" hi, 'thanks'”(注意,这是一个字段),插入的时候也会出现同样的问题。

-----------------------------------------------------

没法控制用户输入,但如果要做一个可以修改提交内容的页面时,则可能会要在一个input里回显给用户,但是如果用textarea,则不大美观

PS:我现在的作法是strip_tags,怎么说还是不大友好

6 楼

我还是没抓住问题的思路,
1。是引号问题、正则表达式问题、算法问题、还是别的什么问题?
2。“<?php echo "test"; ?>”是从数据库中取出的,还是用户输入的?
3。如果是单引号、双引号问题,“<?php echo 'test'; ?>”,“<?php echo "test"; ?>”和
“hello "word" hi, 'thanks'”我都试过了,结果就像4楼写得那样。
是否能把反映思路的那段代码贴上来?

7 楼

抱歉,我没描述清楚:)

“<?php echo "test"; ?>”是从数据库中取出的字段。

这么说吧:

现在需要把用户的资料回显给用户以便修改,我写了如下语句:
<INPUT TYPE="text" NAME="modify_school" size = 15 value = "<?php if($regrow)echo $regrow['school'] ?>">   //$regrow是mysql_fetch_assoc的返回值

这句是显示学校资料的,如果用户以前提交的数据内容是“<?php echo "test"; ?>”,那么会造成数据显示不完整,还有一个引号会出现的框外。

8 楼

下面的程序我试过了,你前面给出的几个句子回显时没问题,你再试试,
<?php                              
require("connect.php");              //你自己做个链接数据库的程序connect.php
$query="create table if not exists modify (";
$query.="id int not null auto_increment primary key,"; 
$query.="school varchar(200))";
$result=mysql_query($query);

$query="insert into modify(school) values('$modify_school')";
$result=mysql_query($query);

$query="select * from modify";
$result=mysql_query($query);

while($row=mysql_fetch_row($result)){
$regrow=$row[1];
$regrow=StripSlashes($regrow);                 
$regrow=htmlspecialchars($regrow);
echo $row[0].$regrow."<br>";             
}
?>
<form action=modify.php method=post>
<INPUT TYPE="text" NAME="modify_school" size=40 value = "<?php echo $regrow; ?>">
<input type=submit name=submit value=submit><br><br>
</form>

9 楼

我错了T_T

再次表示感谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册