PHP如何防止PHP转义html fopen fwrite
我正在尝试制作一个应用程序,它可以让我更轻松地创建HTML文档 它主要起作用,只是当我写入文件时,它会添加反斜杠PHP如何防止PHP转义html fopen fwrite,php,html,escaping,Php,Html,Escaping,我正在尝试制作一个应用程序,它可以让我更轻松地创建HTML文档 它主要起作用,只是当我写入文件时,它会添加反斜杠 <a href=\"google.com\">google</a> 你知道如何阻止它这样做吗 我成功了!如果在将其写入文件之前删除stripslashes(),它将保存/创建该文件,而不删除\ 谢谢你的帮助 如果使用单引号字符串,则不应使用带反斜杠的转义双引号,因为它们是按字面意思解释的 从: 注意:与双引号和heredoc语法不同,特殊字符的变量和转义
<a href=\"google.com\">google</a>
你知道如何阻止它这样做吗
我成功了!如果在将其写入文件之前删除stripslashes(),它将保存/创建该文件,而不删除\
谢谢你的帮助 如果使用单引号字符串,则不应使用带反斜杠的转义双引号,因为它们是按字面意思解释的 从: 注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列出现在单引号字符串中时不会展开
如果您使用的是单引号字符串,则不应使用带反斜杠的转义双引号,因为它们是按字面解释的 从: 注意:与双引号和heredoc语法不同,特殊字符的变量和转义序列出现在单引号字符串中时不会展开
这可能是因为magic quotes处于启用状态,如果您不想每次都使用stripslashes,您应该在php.ini文件中或使用类似以下内容的htaccess文件禁用它们: 在php.ini文件中: 或在.htaccess文件中: 或者直接在代码中禁用它们:
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
来源:这可能是因为魔术引号打开了,如果您不想每次都使用stripslashes,您应该在php.ini文件中或使用类似于以下内容的htaccess文件禁用它们: 在php.ini文件中: 或在.htaccess文件中: 或者直接在代码中禁用它们:
if (get_magic_quotes_gpc()) {
$process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($key, $val) = each($process)) {
foreach ($val as $k => $v) {
unset($process[$key][$k]);
if (is_array($v)) {
$process[$key][stripslashes($k)] = $v;
$process[] = &$process[$key][stripslashes($k)];
} else {
$process[$key][stripslashes($k)] = stripslashes($v);
}
}
}
unset($process);
}
来源:此行为是由PHP的弃用指令引起的,您的指令仍然处于激活状态,因为在5.4之前的任何默认PHP安装中,默认情况下都是如此。除非指定长度参数,否则将查看它是否将转义 要关闭它,您可以放置
php_flag magic_quotes_gpc Off
在文件中,您需要使用ApacheDSO来允许此选项
或者你可以
如果由于共享主机或其他原因而无法执行这两项操作,请在代码中解决
function write($resource,$string,$length)
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return fwrite($resource, $string,$length);
}
这种行为是由PHP的弃用指令引起的,您的指令仍然处于激活状态,在5.4之前的任何默认PHP安装中都是默认状态。除非指定长度参数,否则将查看它是否将转义 要关闭它,您可以放置
php_flag magic_quotes_gpc Off
在文件中,您需要使用ApacheDSO来允许此选项
或者你可以
如果由于共享主机或其他原因而无法执行这两项操作,请在代码中解决
function write($resource,$string,$length)
if (get_magic_quotes_gpc()) {
$string = stripslashes($string);
}
return fwrite($resource, $string,$length);
}
我有一个类似的问题,但是有一个$u POST['body']变量。这对我很有用:
str_replace("\\", "", $_POST['body']);
我有一个类似的问题,但是有一个$u POST['body']变量。这对我很有用:
str_replace("\\", "", $_POST['body']);
你能用你的fwrite调用发布代码吗;它添加反斜杠,有没有“stripslashes”函数?你有没有试着回显$which字符串看看是否有问题?我没有问我的同伴飞越过的问题,我只是建议他试试:)通过禁用所有与
magic\u quotes
…你能用你的fwrite调用发布代码吗?fwrite($fp,stripslashes($which));它添加反斜杠,有没有“stripslashes”函数?你有没有试着回显$which字符串,看看里面是否有小故障?我没有问我的同伴飞越的问题,我只是建议他试试:)通过禁用与magic\u quotes
有关的所有内容……无法访问php.ini文件(共享服务器)htaccess文件无法添加.htaccess文件??你甚至不能在php脚本所在的地方创建htaccess文件?我不明白为什么这是不可能的,但如果是这样的话,每次我猜你都必须添加StripSlash。/me从两个方面看,以确保没有人在看|我真的不理解htaccess文件我在它的末尾添加了命令php_flag magic_quotes_gpc Off,但它没有做什么,所以我删除了它(不想搞乱我不懂的东西)我用它来设置404,这是关于itOk的。那么要放在开头的php示例代码呢?它是否与stripslashes函数一起工作?您是否也尝试将.htaccess文件放在网站的根目录下?文件名是“htaccess”还是“.htaccess”?还要确保它没有像windows那样的隐藏扩展名,即“.htaccess.txt”无法访问php.ini文件(共享服务器)和htaccess文件无法添加.htaccess文件??你甚至不能在php脚本所在的地方创建htaccess文件?我不明白为什么这是不可能的,但如果是这样的话,每次我猜你都必须添加StripSlash。/me从两个方面看,以确保没有人在看|我真的不理解htaccess文件我在它的末尾添加了命令php_flag magic_quotes_gpc Off,但它没有做什么,所以我删除了它(不想搞乱我不懂的东西)我用它来设置404,这是关于itOk的。那么要放在开头的php示例代码呢?它是否与stripslashes函数一起工作?您是否也尝试将.htaccess文件放在网站的根目录下?文件名是“htaccess”还是“.htaccess”?还要确保它没有像windows那样的隐藏扩展名,即“.htaccess.txt”。如果这回答了问题,请解释原因。你的回答似乎与问题中的问题不同(但可能相关)。如果这回答了问题,请解释原因。你的答案似乎解决了一个与问题中的问题不同(但可能相关)的问题。