首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHP:仅在HTML标记之外转义引号(正则表达式)

在PHP中,可以使用preg_replace()函数和正则表达式来转义HTML标记之外的引号。以下是一个示例:

代码语言:php
复制
<?php
$input = 'This is a "quote" and this is a \'quote\'';
$pattern = '/(?<!<[^>]*)([\'"]+)(?![^<>]*>)/';
$replacement = '\\\$1';
$output = preg_replace($pattern, $replacement, $input);
echo $output;
?>

在这个示例中,我们使用了一个正则表达式来匹配HTML标记之外的引号。(?<!<[^>]*)([\'"]+)(?![^<>]*>)这个正则表达式的意思是:

  1. (?<!<[^>]*)([\'"]+):匹配不在HTML标记内的引号。(?<!<[^>]*)表示不匹配以<开头,后面跟着任意数量的非>字符的字符串。([\'"]+)表示匹配一个或多个引号。
  2. (?![^<>]*>):匹配不在HTML标记内的引号。[^<>]*表示匹配任意数量的非<>字符。>表示匹配一个>字符。

然后,我们使用preg_replace()函数将匹配到的引号替换为转义后的引号。\\\$1表示将匹配到的引号用反斜杠转义。

这个示例可以帮助您在PHP中转义HTML标记之外的引号。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

有关PHPHTML引号、双引号转义以及转成HTML实体的那些事!

一、单引号和双引号转义PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单、双引号; 先说几个PHP函数: 1、addslashes — 使用反斜线引用(转义)字符串;   返回字符串...这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 一个使用 addslashes() 的例子是当你要往数据库中输入数据时。...当 PHP 指令 magic_quotes_sybase 被设置成on 时,意味着插入 ' 时将使用 ' 进行转义。...废话不多说,这里有几个关于PHP转实体的函数需要详细了解: 1、htmlspecialchars() 转义特别的字符为HTML实体; '&' (ampersand) becomes '&' '"...代码,函数1的反函数 3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的

3.8K70
  • JavaScript中为什么12.toString会报错?

    词法规定了语言的最小语义单元:token,可以翻译成“标记”或者“词”,在我的专栏文章中,我统一把 token 翻译成词。...HTML 中,很多人喜欢用的   最后生成的就是它了; 6. ..." DoubleStringCharacters " ' SingleStringCharacters ' 单双引号的区别仅仅在于写法,在双引号字符串直接量中,双引号必须转义,在单引号字符串直接量中,单引号必须转义...有特别意义的字符包括有SingleEscapeCharacter所定义的 9 种,见下表: 除了这 9 种字符、数字、x 和 u 以及所有的换行符之外,其它字符经过\转义后都是自身。 9....我们可以看一个例子: /[/]/.test("/"); 除了\、/ 和[ 三个字符之外,JavaScript 正则表达式中的字符都是普通字符。 用\和一个非换行符可以组成一个转义,[ ]中也支持转义

    77910

    JavaScript词法:为什么12.toString会报错?

    词法规定了语言的最小语义单元:token,可以翻译成“标记”或者“词”,在我的专栏文章中,我统一把 token 翻译成词。...HTML 中,很多人喜欢用的   最后生成的就是它了; 6. ..." DoubleStringCharacters " ' SingleStringCharacters ' 单双引号的区别仅仅在于写法,在双引号字符串直接量中,双引号必须转义,在单引号字符串直接量中,单引号必须转义...有特别意义的字符包括有SingleEscapeCharacter所定义的 9 种,见下表: 除了这 9 种字符、数字、x 和 u 以及所有的换行符之外,其它字符经过\转义后都是自身。...我们可以看一个例子: /[/]/.test("/"); 除了\、/ 和[ 三个字符之外,JavaScript 正则表达式中的字符都是普通字符。 用\和一个非换行符可以组成一个转义,[ ]中也支持转义

    89610

    从 RegExp 构造器看 JS 字符串转义设计

    而对于 JSON 数据来说,后端 JSON.stringify 时,\ 字符是一定会经过一层转义的(这样才符合 JSON 规范)。以 PHP 为例: <?...php $regText = '\w+\.ke\.qq\.com'; // 注意 PHP 中单引号内的字符串不会经过解析 echo json_encode(array('pattern' => $regText...3、JS 代码中的转义处理 另外一种可能用到 RegExp string 参数的场景是:基于 JS 逻辑,动态创建正则表达式。例如正则表达式 /\w{3}/ 中的数字 3,是通过某个变量来传递的。...修饰符来解决字符串转义问题,在字符串前加上 r 标记,表示这个字符串的内容不经过解析。...回过头来看,JS 正则表达式构造器的参数设计问题,其实不是 RegExp 引起的,而是 JavaScript String 的设计缺陷:单引号和双引号非但没有参考 PHP/Shell 之类的设计,反而给前端社区留下

    12.8K80

    PHP正则表达式笔记与实例详解

    EOF; 使用定界符无需给双引号增加转义字符,可以参考如下: $str="//"; 4正则的其他函数使用 //正则的其他函数使用:...匹配HTML标记正则表达式:/<(. |/ 匹配首尾空格的正则表达式:(^s $) 匹配Email地址的正则表达式:w+([-+.]w+) .w+([-.]w+)* 匹配网址...匹配腾讯QQ号:^[1-9] $ 元字符及其在正则表达式上下文中的行为: 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。 ^ 匹配输入字符串的开始位置。...匹配中文字符的正则表达式: [x{4e00}-x{9fa5}] 匹配双字节字符(包括汉字在内): 匹配空行的正则表达式:n[s| ]* 匹配HTML标记正则表达式:/<(. |/ 匹配首尾空格的正则表达式...: [x{4e00}-x{9fa5}] 匹配双字节字符(包括汉字在内): 匹配空行的正则表达式:n[s| ]* 匹配HTML标记正则表达式:/<(. |/ 匹配首尾空格的正则表达式

    1.1K00

    正则表达式的使用

    php其实也有类似于beautifulsoup的html解析工具,没去了解,毕竟我需要的也不是太繁琐,有需要的也可以去看一下。下面具体介绍正则表达式php中的使用。...正则表达式php中的使用 php中支持正则表达式的函数 preg_filter 执行正则表达式搜索和替换 preg_grep 返回匹配模式的数组条目 preg_last_error...PREG_BAD_UTF8_ERROR 如果最后一个错误是由于异常的utf-8数据(仅在运行在 UTF-8 模式正则表达式下可用) 导致的,调用preg_last_error()返回。...PCRE_VERSION PCRE版本号和发布日期 正则表达式的语法 元字符 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。...匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 . 。 [ 标记一个中括号表达式的开始。要匹配 [,请使用 [。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。

    91120

    PHP定义字符串的四种方式

    1、简介   在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用。   我们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。...2、单引号与双引号   2.1、单引号   在单引号中,任何特殊字符都会按原样输出【除\\、\‘将会被转义输出】 eg. 1 <?php 2 $var = 'this is a var!'...2.2、双引号   在双引号中,遇到$将会解析该变量;   双引号中会转义反斜杠的转义字符; 转义字符代码 转义字符的含义 \ " 双引号 \ ' 单引号 \ \ 反斜杠 \ n 换行符 \ r 回车符...由上面例子我们可以知道,双引号中的变量被解析了,替换成字符串;其他带反斜杠的转义字符都进行了相应的转义。   ...【此时双引号相当于普通字符】 语法要求:   1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。   2、开始标记后不能出现空格或多余的字符。

    88720

    玩转JavaScript正则表达式

    不止应用于编程语言中:JavaScript、JAVA、Perl、PHP、C#......>中能够出现 引用文本(被单引号或双引号包裹的) 非引用形式的“其他文本”(包括除了>和引号之外的任何字符) 引用文本:HTML中的引文可以用双引号,也可以用单引号,但不允许嵌套转义引号。...其他文本:除了>和引号之外的任意字符 可以使用/[^'">]/来匹配 现在可以得出匹配HTML Tag的正则表达式最终版!...,但正文也可能包含转义之后的引号。...第一个表达式的问题在于,我们把反斜杆认为只是用来转义引号的,其实反斜杆在字符串中可以用来转义任何字符。因此,我们要匹配的文本其实是开始引号和结束引号之间,包括转义字符和非引号的任何字符。

    1.4K50

    玩转 JavaScript 正则表达式

    路径:除了上面两者之外的内容。 得到正则表达式:var patternURL = /^https?:\/\/([^/]+)(/.*)?...>中能够出现 引用文本(被单引号或双引号包裹的) 非引用形式的“其他文本”(包括除了>和引号之外的任何字符) 引用文本:HTML中的引文可以用双引号,也可以用单引号,但不允许嵌套转义引号。...其他文本:除了>和引号之外的任意字符 可以使用/[^'">]/来匹配 现在可以得出匹配HTML Tag的正则表达式最终版!...注: 这里的结束分隔符是一个引号,但正文也可能包含转义之后的引号。匹配开始和结束分隔符很容易,诀窍就在于,匹配正文的时候不要超越结束分隔符。 匹配正文的思路:1、不是引号:由[^"]匹配。...第一个表达式的问题在于,我们把反斜杆认为只是用来转义引号的,其实反斜杆在字符串中可以用来转义任何字符。因此,我们要匹配的文本其实是开始引号和结束引号之间,包括转义字符和非引号的任何字符。

    4.2K00

    玩转JavaScript正则表达式

    不止应用于编程语言中:JavaScript、JAVA、Perl、PHP、C#......>中能够出现 引用文本(被单引号或双引号包裹的) 非引用形式的“其他文本”(包括除了>和引号之外的任何字符) 引用文本:HTML中的引文可以用双引号,也可以用单引号,但不允许嵌套转义引号。...其他文本:除了>和引号之外的任意字符 可以使用/[^'">]/来匹配 现在可以得出匹配HTML Tag的正则表达式最终版!...,但正文也可能包含转义之后的引号。...第一个表达式的问题在于,我们把反斜杆认为只是用来转义引号的,其实反斜杆在字符串中可以用来转义任何字符。因此,我们要匹配的文本其实是开始引号和结束引号之间,包括转义字符和非引号的任何字符。

    1.1K30

    PHP中的正则表达式及模式匹配

    PHP中对于正则处理文本提供了两种方式,一种是PCRE方式(PCRE库是一个实现了与perl 5在语法和语义上略有差异(详见下文)的正则表达式模式匹配功能的函数集....分隔符可以使任意非字母数字, 除反斜杠(\)和空字节之外的非空白ascii字符. 如果分隔符 在表达式中使用, 需要使用反斜线进行转义....单引号, 双引号, 反斜线(\)和NULL字符在 后向引用替换时会被用反斜线转义. 仅preg_replace()使用此修饰符, 其他PCRE函数忽略此修饰符....U)进行设置, 或者在量词后以问号标记其非贪婪(比如.*?).在非贪婪模式, 通常不能匹配超过 pcre.backtrack_limit 的字符....参考资料: 1、preg_match_all截取body正则表达式 2、PHP正则表达式匹配多行及模式匹配 3、PHP Manual PCRE模式 @import url(http://www.cnblogs.com

    2.9K20

    PHP正则表达式笔记与实例详解

    本文实例讲述了PHP正则表达式笔记与实例。分享给大家供大家参考,具体如下: 这里主要介绍如何在PHP使用正则表达式,并附带几个实例. 这两天工作用到了正则表达式,发现自己已经忘记的差不多了,囧啊!...表示任意一个除换行符之外的字符 常用组合: .*? 表示最小匹配所有字符(拒绝贪婪匹配) 3....EOF; 使用定界符无需给双引号增加转义字符,可以参考如下: $str="/<div id=\"mainNav\" class=\"clearfix\" /"; 4正则的其他函数使用 //正则的其他函数使用...标记删除掉(替换空) echo preg_replace("/<\/?....匹配中文字符的正则表达式: [\x{4e00}-\x{9fa5}] 匹配双字节字符(包括汉字在内):[^x00-xff] 匹配空行的正则表达式:n[s| ]*r 匹配HTML标记正则表达式:/<

    2.8K40

    PHP.步步为营 | 正则表达式详析 与 诸多运用实例

    PHP正则表达式(PCRE)定义 正则表达式是对字符串进行操作的一种逻辑公式, 就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式。...经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~), 例如: /foo bar/ #^[^0-9]$# ~php~ 如果模式中包含分隔符,则分隔符需要使用反斜杠(\)进行转义。...元字符与转义 正则表达式中具有特殊含义的字符称之为元字符, 常用的元字符有: \ 一般用于转义字符 ^断言目标的开始位置(或在多行模式下是行首) $断言目标的结束位置(或在多行模式下是行尾)...^ 仅在作为第一个字符(方括号内)时,表明字符类取反 -标记字符范围 其中^在反括号外面,表示断言目标的开始位置, 但在方括号内部则代表字符类取反, 方括号内的减号-可以标记字符范围,例如...php //\\2是一个后向引用的示例. 这会告诉pcre它必须匹配正则表达式中第二个圆括号(这里是([\w]+)) //匹配到的结果. 这里使用两个反斜线是因为这里使用了双引号.

    1.7K10

    modern php 笔记(第一次阅读)

    过滤输入、验证数据、转义输出 过滤输入 转义或删除不安全的字符,在数据到达应用的存储层之前,一定要过滤输入数据,最需要过滤的输入数据类型有:HTML、sql查询和用户资料 过滤html要使用htmlentities...()函数,默认情况下这个函数不会转义引号,而且也不会检测出输入字符串的字符集。...该函数的正确使用方法: 第一个参数是输入字符串 第二个参数是ENT_QUOTES常量,转义引号 第三个参数设为输入字符串的字符集 如果需要更多过滤html输入方式,可以使用html Purifier...库,缺点:速度慢,而且可能难以配置 ==不要使用正则表达式过滤html正则表达式很复杂吗,可能导致html无效且出错的几率高== sql查询 在sql查询中一定不能使用未过滤的输入数据。...可以使用htmlentities()函数转义输出。第二个参数一定要使用ENT_QUOTES,这个函数转义引号和双引号

    1.3K20
    领券