首页 > 编程语言 >【PHP兴趣部落-09】递归转义

【PHP兴趣部落-09】递归转义

时间:2023-05-22 12:06:05浏览次数:37  
标签:addslashes 09 value 转义 斜杠 字符串 array PHP


一、定义

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

  • 单引号(’)
  • 双引号(”)
  • 反斜杠(\)
  • NULL

注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。


二、语法

addslashes(string) // string 是必须的


三、示例:

例子 1
向字符串中的预定义字符添加反斜杠:

<?php
$str = "hell world's from coder?";
echo $str . " This is not safe in Earth.<br>";
echo addslashes($str) . " This is safe in Earth.";
?>
例子 2
向字符串中的预定义字符添加反斜杠:

<?php

/*
递归对数组转义
*/


$array = array('a"b',array("c'd",array('e"f')));

// 以为递归转义函数
function _addslashes($arr){

    foreach ($arr as $key => $value) {
        if (is_string($value)) {// 如果字符串中含有 " ,就转义
            $arr[$key] = addslashes($value);
        }elseif (is_array($value)) {// 如果是数组,继续调用自身再转义
            $arr[$key] = _addslashes($value);
        }
    }

    return $arr;
}

print_r(_addslashes($array));// 打印递归转义后的数组

print_r($array);// 这个array里面的值还是原来的

// 如果想要array里面的内容为转义之后的值,可以直接赋值
// $array = _addslashes($array);

Demo地址 : 转义


标签:addslashes,09,value,转义,斜杠,字符串,array,PHP
From: https://blog.51cto.com/u_13481937/6322845

相关文章

  • 【PHP兴趣部落-08】PHP中时区设置的三种方法(timezone)
    一、三种方法php中时区默认是格林尼治时间,和中国时差八个小时。现在根据需要将时间设置为中国时间,下面整理了三种方法。方法1:最好的方法在php.ini里加上找到date.timezone项,设置date.timezone=“Asia/Shanghai”,重启环境就ok了。方法2:在需要用到这些时间函数的时候,在页面添......
  • 【PHP兴趣部落-04】html 表单中常用元素
    一、简介html表单中常用的一些元素:比如按钮,输入框、单选框、复选框等控件元素。表单标签:<form>元素标签:<inputtype=”类型”name=”控件名”value=”值”>三、代码<html><head><title>html基本元素学习</title></head><!--表单--><formaction="ok.html"met......
  • "输出美元符号:$ <br>"; //转义或者不转义都可
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>single_str.php</title><metacharset="UTF-8"><m......
  • Python 4-09 time
    time 在 Python 中与时间处理有关的模块包括 time,datetime 以及 calendar。在 Python 中,用三种方式来表示时间,分别是时间戳、格式化时间字符串和结构化时间。时间戳(timestamp):1970年1月1日之后的秒,可以通过 time.time() 获得。时间戳是一个浮点数,可以进行加减运算,但......
  • Python 1-09 字符串
    Python1-09字符串一、Python字符串在Python3中,字符串是由Unicode码点组成的不可变序列。x="Python"y=x+"Cat"xisy#False字符串是用单引号"或双引号""括起来的一串字符,使用三引号创建多行字符串。在Python中单字符也是用字符串表示。>>>var1='HelloWor......
  • PhpStorm-中文汉化版设置教程
    原文地址:https://www.ngxcode.com/archives/607.html前言相信不少开发PHP的同学,对PhpStorm编辑器都不陌生,PhpStorm是JetBrains公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。但PhpStorm默认是英文......
  • ctfshow php特性
    web111源代码highlight_file(__FILE__);error_reporting(0);include("flag.php");functiongetFlag(&$v1,&$v2){eval("$$v1=&$$v2;");//这里是一个赋值语句把v2的值复制下面通过get获得的$$v1值var_dump($$v1);//打印$$v1的值}if(isset($_......
  • php+phpstorm+xdebug配置
    简介原文链接:https://culturesun.site/index.php/archives/675.html因为博客是php的,所以无奈接触了php开发,虽然之前也学习过php语法。搞开发是离不开debug。最初从网上找到相关教程配置成功了,后来升级php,浏览器崩了搞的debug不行,再配置怎么也不成功,准确的来说,网上的辣鸡贴子太......
  • 宝塔面板中安装php8以上环境,提示: configure: error: iconv does not support errno
    问题:宝塔面板中安装php8编译时提示configure:error:iconvdoesnotsupporterrno#下面这些是配置yum源和epel源,阿里云ecs在centos8测试成功wgethttp://mirrors.cloud.aliyuncs.com/repo/Centos-vault-8.5.2111.repo-O/etc/yum.repos.d/Centos-vault-8.5.2111.repo&&......
  • php 操作数组 (合并,拆分,追加,查找,删除等)
    1.合并数组array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加。其形式为:Php代码1.arrayarray_merge(array这个函数将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组......