首页 > 后端开发 > 正文

php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突

2025-02-03 13:38:45 | 我爱编程网

php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突信息,一起来了解一下吧!

本文目录一览:

php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突

php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突

内容:
一般htmlspecialchars用于过滤普通文本内容的,而mysql_real_escape_string则是用于过滤查询语句sql字符串中的非法字符的(如:单引号等)
日期:2015年10月22日 18:15:01

php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突

一文看懂 PHP 7.3 更新

PHP 目前依然作为竞争激烈的脚本语言之一,这主要归功于其核心维护团队的快速更新。


自从 PHP 7.0 的发布,社区见证了新特性的诞生,极大地改进了开发者在项目中使用 PHP 的方式。这些改进的主要目的包括提高 PHP 应用的性能和安全性。


PHP 最近实现了又一个里程碑,发布了 PHP 7.3 版本,新版本带来了许多急需的更新。


本文将探讨新发布的 PHP 7.3 特性和更新。好消息是,你可以在测试服务器上自行安装新版本并查看新功能。但要记住,切勿在生产服务器上使用 RC 版本更新,这可能会破坏已经上线的应用。


以下是 PHP 7.3 中引入的一些更新,与之前的版本相比,它们大大提高了 PHP 7.3 的性能。


接下来,我们将逐一讨论这些更新。



  1. 灵活的 Heredoc 和 Nowdoc 语法


    Heredoc 和 Nowdoc 语法在使用多行长字符串时非常有用。它们要求结束标识符应该出现在新行的第一个字符串。


    此更新提出了以下两项改进:



    • 在上述示例中,很容易看出这些改动。



  2. 函数调用中允许尾部逗号


    在参数、元素、变量列表结尾,追加尾部逗号。有时我们在数组内以及函数调用(特别是可变参函数)时需要传递大量元素,若遗漏一个逗号,便会报错。基于此情况,尾部逗号便显得十分有用。这个特性已经在数组内使用,并且从 PHP 7.2 开始,分组命名空间(Grouped Namespaces)语法也开始支持尾部逗号。


    当新值需要被追加于此处时,尾部逗号便显得十分实用。在可变参函数例如 unset() 内,更是如此。


    当你使用 compact() 函数给模板引擎传递一批变量时,也是能用到的例子。


    在某些需要构造连续或分组数据情况下,经常要使用 array_merge() 函数合并数组。也可以利用尾部逗号: 我爱编程网



  3. JSON_THROW_ON_ERROR


    解析 JSON 响应数据,有 json_encode() 以及 json_decode() 两个函数可供使用。不幸的是,它们都没有恰当的错误抛出表现。json_encode 失败时仅会返回 false;json_decode 失败时则会返回 null,而 null 可作为合法的 JSON 数值。唯一获取错误的方法是,调用 json_last_error() 或 json_last_error_msg(),它们将分别返回机器可读和人类可读的全局错误状态。


    该 RFC 提出的解决方案是,为 JSON 函数新增 JSON_THROW_ON_ERROR 常量用于忽略全局错误状态。当错误发生时,JSON 函数将会抛出 JsonException 异常,异常消息(message)为 json_last_error() 的返回值,异常代码(code)为 json_last_error_msg() 的返回值。



  4. 升级 PCRE2


    PHP 使用 PCRE 作为正则表达式引擎。但从 PHP 7.3 开始,PCRE2 将作为新的正则引擎大显身手。因此,你需要将现有的正则表达式迁移到符合 PCRE2 的规则。这些规则比以前更具侵入性。以下是实例:


    这个表达式在新版 PHP 内将会匹配失败且不会触发警告。因为 PCRE2 现严格要求,若需匹配连字符(-)而非用于表示范围,则必须移动到末尾或将其转义。


    更新到 PCRE2 10.x 后,支持了以下以及更多特性:



    • “后向引用”—— Back References,又称“反向引用”、“回溯引用”等。



  5. list() 赋值引用


    PHP 中的 list() 现在可以赋值给引用,在当前版本中 list() 中赋值不能使用引用,在 PHP 7.3 中将允许使用引用,新改进的语法如下:



  6. is_countable 函数


    在 PHP 7.2 中,使用 count() 获取对象和数组的数量。如果对象不可数,PHP 会抛出警告⚠️。所以需要检查对象或者数组是否可数。PHP 7.3 提供新的函数 is_countable() 来解决这个问题。


    该 RFC 提供新的函数 is_countable(),对数组类型或者实现了 Countable 接口的实例的变量返回 true。



  7. array_key_first(), array_key_last()


    当前版本的 PHP 允许使用 reset() ,end() 和 key() 等方法,通过改变数组的内部指针来获取数组首尾的键和值。现在,为了避免这种内部干扰,PHP 7.3 推出了新的函数来解决这个问题:


    让我们看一个例子:



  8. Argon2 和 Hash 密码加密性能增强


    在 PHP 的早期版本中,我们增加了 Argon2 和哈希密码加密算法,这是一种使用哈希加密算法来保护密码的现代算法。它有三种不同的类型,Argon2i、Argon2d 和 Argon 2id。我们针对 Argon2i 密码散列和基于密码的密钥生成进行了优化。Argon2d 性能更快,并使用依赖于内存的数据访问。Argon2i 使用与内存无关的数据访问。Argon2id 是 Argon2i 和 Argon2d 的混合体,使用依赖于数据和与数据独立的存储器访问的组合。



  9. 废弃并移除 image2wbmp()


    该函数能够将图像输出为 WBMP 格式。另一个名为 imagewbmp() 的函数也同样具备单色转换的作用。因此,出于重复原因, image2wbmp() 现已被废弃,你可使用 imagewbmp() 代替它。此函数被弃用后,再次调用它将会触发已弃用警告。待后续此函数被移除后,再次调用它将会触发致命错误。



  10. 废弃并移除大小写不敏感的常量


    使用先前版本的 PHP,你可以同时使用大小写敏感和大小写不敏感的常量。但大小写不敏感的常量在使用中会造成一点麻烦。所以,为了解决这个问题,PHP 7.3 废弃了大小写不敏感的常量。



  11. 同站点 Cookie


    PHP 7.3 在建议在使用 cookies 时,增加同站点标志。这个 RFC 影响了四个系统函数。


    这个影响会在两种情况下起作用。其中一种方式会添加函数的新参数,另一种方式允许以数组形式的选项代替其他单独选项。



  12. FPM 更新


    FastCGI 进程管理器也进行了更新,现在提供了新的方式来记录 FPM 日志。


    log_limit: 设置允许的日志长度,可以超过 1024 字符。


    log_buffering: 允许不需要额外缓冲去操作日志。


    decorate _workers_output: 当启用了 catch_workers_output 时,系统会去禁用渲染输出。



  13. 改进 Windows 下的文件删除


    如官方文档所述:


    默认情况下,文件描述符以共享读、写、删除的方式去操作。这很有效的去映射 POSIX 并允许去删除正在使用中的文件。但这并不是100%都是一样的,不同的平台可能仍存在一些差异。删除操作之后,文件目录仍存在直到所有的文件操作被关闭。




总结,PHP 7.3 引入了多个功能改进,提高了性能,增加了新特性和更新,同时也废弃了一些旧功能。这些更新都可以在 php.net 网站上找到,并已经合并到主分支上了。你现在就可以在自己的服务器上使用这些新功能,也可以查阅官方 RFC 页面获取每个详细版本。如果你对新版 PHP 7.3 有任何问题,可以在评论下写下自己的想法。如果你喜欢这篇文章,并觉得它很有帮助,可以在 Twitter 上关注我,以获取更多信息。

PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例的相关内容。

本文实例讲述了PHP中addslashes()和stripslashes()实现字符串转义和还原用法。分享给大家供大家参考,具体如下:
PHP中addslashes()
函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:
单引号(')
双引号(")
反斜杠(\)
NULL
stripslashes()
函数删除由
addslashes()
函数添加的反斜杠。
用法示例如下:
<?php
$str="select
*
from
`book`
where
bookname='脚本之家'";
echo
$str."<br/>";//输出字符串$str
echo
$astr=addslashes($str);//字符串转义并输出
echo
"<br/>";
echo
stripslashes($astr);//将转义字符串还原
?>
运行结果如下:
select
*
from
`book`
where
bookname='脚本之家'
select
*
from
`book`
where
bookname=\'脚本之家\'
select
*
from
`book`
where
bookname='脚本之家'
补充:
addslashes()与addcslashes()函数的区别:
这是两个写法非常相近但是使用有所区别的函数,addslashes()
函数返回在预定义字符之前添加反斜杠的字符串,而addcslashes()
函数返回在指定字符前添加反斜杠的字符串,因此addcslashes()
函数需要添加附加参数说明需要添加反斜杠的具体字符。
二者具体区别与用法可参考本站相关文章《解析php
addslashes()与addcslashes()函数的区别和比较》
希望本文所述对大家PHP程序设计有所帮助。

以上就是php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php转义函数htmlspecialchars和mysql_real_escape_string区别在哪里?可以同时使用吗?会不会起冲突”相关推荐
我一点英语都不会可以学习编程吗?
我一点英语都不会可以学习编程吗?

我一点英语都不会可以学习编程吗?从我多年的编程经验角度看,英语不好,对学编程影响不是很大,对能否学好影响最大的往往是你的坚持和乐观,做好这两点,进入这个行业是没有问题的。就拿python这门编程语言来说,其实常用的到的英文单词也不是很多,你只需要记住常用的一千多个就够了,如果你能掌握的更多那就更好。毕竟在IT领域,老美的贡献比较大,所以有好多技术文档和软件都是英文的,如果你英语学的特别

2024-01-15 05:01:20
php函数基础问题 p和(int)转换使用与区别
php函数基础问题 p和(int)转换使用与区别

settype参数在PHP中,变量var的类型可以通过settype()函数进行设定。这个函数的主要作用是明确指定变量的数据类型,以便于程序的管理和优化。以下是settype()函数可能接受的几种参数:boolean(或称为"bool"):从PHP4.2.0版本开始,你可以将变量设置为布尔类型,true或false。integer(或"int"):同样从PH

2025-02-12 12:58:18
php+impl函数 析构函数会在何时被调用?
php+impl函数 析构函数会在何时被调用?

php登录问题总是msg=“用户名不能为空”为什么要用isset($_POST["uId"])呢?isset是判断变量的,你可以这样用isset($_POST),判断一个变量的值是否为空就直接用empty()函数就可以了。把你的isset改为empty就不会报错了,要注意理解isset函数和empty函数的用法。还有一种可能就是你传过来的参数后台没有接收到,比如前端用的是G

2024-11-09 02:59:20
在哪里可以免费学习python opencv?
在哪里可以免费学习python opencv?

夜曲编程的python坑不坑。夜曲编程就初学者入门而言是很不错的,主要有几个优势:课程设计:总体设计由浅入深,学习路径清晰,容易坚持。采用的是卡片模式,每日学习一课,只需花费20来分钟。且页面自带记忆卡片,复杂概念简单化。偶然在网上发现了夜曲编程这个软件。试着跟着学了一下,先是学习的免费课程。第一次学习的时候,这个教程惊艳了我。首先,夜曲编程的教程都是图文形式的教程,交互式的

2023-12-18 18:34:56
php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)
php分割数组函数 split和explode的区别(同一个PHP文件中用substr_replace函数时出现乱码问题,用str_ireplace函数时正常,究竟问题出在哪儿了)

php分割数组函数split和explode的区别一句话总结这三个分割函数的explode用字符串分割,split和preg_split用正则分割.效率方面:explode最快,其次preg_split最后split.split()函数用正则表达式来把字符串拆分并返回数组,如果出错则返回false。用法:split(string$pattern,string$string

2024-09-23 13:06:36
vue和java怎么整合,会不会有跨域问题?
vue和java怎么整合,会不会有跨域问题?

vue和java怎么整合,会不会有跨域问题?vue可以打包生成静态的资源文件(html,css,js,png等),可以直接放到javaweb项目的webapp里面,不会有跨域问题。这种都是前后端分离的开发方式。后端只用提供返回json格式的接口的就可以了。推荐后端使用springboot框架会比较简单。java小工具能用vue显示界面吗能用。根据该软件简介可知,在java中,为了方

2024-06-27 23:41:07
unset函数php 解析PHP中的unset会不会释放内存
unset函数php 解析PHP中的unset会不会释放内存

解析PHP中的unset会不会释放内存我理解的是,会列为php可用内存,但不会释放给操作系统。一个10M的大数组被unset,内存占用不会减小,但是新的产量声明赋值后会复用这块内存。所以习惯上使用完大数组后会unset掉,便于php复用这块内存,避免超过memory_limit限制和节约内存。解析PHP中的unset究竟会不会释放内存PHP中的unset究竟会不会释放内存?以下我们实例

2024-09-06 21:31:18
php 同一个程序中不同脚本里能用相同的变量名吗
php 同一个程序中不同脚本里能用相同的变量名吗

php同一个程序中不同脚本里能用相同的变量名吗可以,但是你要确保这两个变量不会同时出现,比如在A文件中定义了$aa,在文件中也定义了$aa,同时A包含了B文件,这样就会出问题。不过如果变量有域的话就不会引起冲突了。比如某个函数里定义了$aa,同时函数外面也有$aa,但是他们不会冲突。php怎么去除重复的值在PHP中去除重复值的函数为array_unique()。此函数会从数组中移除

2025-01-12 18:11:37