繁体中文
设为首页
加入收藏
当前位置:PHP技术首页 >> PHP基础 >> 关于使用文本域(TextArea)的一个问题

关于使用文本域(TextArea)的一个问题

2005-01-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:limodou 我在使用表单处理信息时发现,对文本域的处理不正确。例如下面的一个表格: -------------------------------------------------------------------------------- test.HTML TextArea Test 文件名...

limodou

我在使用表单处理信息时发现,对文本域的处理不正确。例如下面的一个表格:

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

test.HTML

TextArea Test

文件名

内容:


test.PHP

$fp=fopen($filename, "w");

fwrite($fp, $content);

fclose($fp);

echo "OK";

?>

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

上面的例子是用来测试的,主要是想完成用户可以输入一个文件名,然后可以输入文件的内容。确认后

可以在服务器上保存文件。下面简单地说明一个两个文件的内容。

test.HTML 中有一个表单,里面有一个文本框和一个文本域。文本框用来输入要保存的文件名,文本域

用来输入文件的内容。文件名缺省设为"test.txt",文件内容缺省设为"aaa" \"bbb\"。表单的动作为"post",

执行文件为"test.PHP"。

test.PHP则很简单。打开指定文件,写入文件内容,关闭文件,输出"OK"。

原来我想文件内容应该是"aaa" \"bbb\",但结果并不是这样,而是\"aaa\" \\\"bbb\\\"!在每一个双

引号(")和反斜线(\)(其实还有单引号和空(nul))前都加上了一个转义用的反斜线。这是为什么? 于是,我

查询了PHP中文手册,看到关于PHP.ini的配置中关于magic_quotes_gpc和magic_quotes_runtime的说明,我

知道了是因为PHP给自动处理了。这样,我就将PHP.ini配置中的magic_quotes_gpc和magic_quotes_runtime

设成了off,结果就正确了。

但是如果服务器我无法改动怎么办?于是又查阅了一下字串符处理函数,我发现stripslashes()函数就

可以完成这个工作。这样首先把PHP.ini改成原来的样子,再修改test.PHP如下:

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

$fp=fopen($filename, "w");

$content=stripslashes($content);

fwrite($fp, $content);

fclose($fp);

echo "OK";

?>

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

再检查结果,完全符合我的需要!

还有要注意的是,如果你想做一个修改文件内容的应用。如,首先把文件内容读出来,放入到文本域中,

用户可以进行修改。那么当文件中有特殊的符号,如"<",">","&" 符等,直接显示就会与实际内容不符。

没关系,PHP还提供了HTMLspecialchars()函数将特殊字符转换成HTML 的字串格式,这样显示与处理都是正

确的了。

这是我在处理文本域时发现的一个问题,希望能对你有帮助!

责任编辑:admin
相关文章