PHP session_encode()和 session_decode()

 更新时间:2016年11月25日 15:03  点击:1576
本文章来给大家介绍PHP session_encode()和 session_decode() 用法,有需要了解的同学可参考本实例。

session_encode

session_encode — 将当前会话数据编码为一个字符串

说明
string session_encode ( void )
session_encode()返回一个字符串,该字符串包含有被编码的当前会话数据。

 

 代码如下 复制代码

<?
//boolean session_encode()
session_register ( 'bgcolor' );
session_register ( 'fontcolor' );

$id = session_id ( $usr_id );

$bgcolor = "white";
$fontcolor = "blue";

$usr_data = session_encode ();

print $usr_data;
?>

session_decode

 

 代码如下 复制代码

<?
session_start();
$_SESSION = array();
session_decode( "products|a:2:{i:0;s:8:"Hal 2000";i:1;s:6:"Tardis";}" );
foreach ( $_SESSION['products'] as $p ) {
  print "$p<br/>n";
}
?>

404页面就是一个告诉搜索引擎这个页面不存在了,同时也提示用户可以选择其它的操作了,下面我来给没有apache操作权限朋友介绍php中自定义404页面的操作方法。

方法一

 代码如下 复制代码

@header("http/1.1 404 not found");
@header("status: 404 not found");
echo 'echo 404';
exit();

加载一个404错误页面

 代码如下 复制代码


@header("http/1.1 404 not found");
@header("status: 404 not found");
include("../../404.htm");
exit();


也可以在站点中加入.htaccess 代码如下

 代码如下 复制代码

errordocument 404 /404.html

如果有apahce配置权限,我们可以修改 httpd.conf

找到:

 代码如下 复制代码
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 xxxxxxx


修改为

 代码如下 复制代码
ErrorDocument 404 /404.htm
本文章来给大家介绍关于各种PHP去除多余的HTML,Javascrit,Css标签 方法与实现程序,大家可进入参考。

1.不保留任何HTML标签,代码会是这样:echo strip_tags($str);  

2. 只保留<p>一个标签的话,只需要将<p>字符串写到strip_tags的第二个参数中,代码会是这样:echo strip_tags($str, "<p>");  

3. 我们要保留<p>与<b>…多个标签,只需要将多个标签用空格分隔后写到strip_tags的第二个参数中,代码会是这样:echo strip_tags($str, "<p> <b>");

4.保留所有标签,仅仅转义用addslashes(), stripslashes(), htmlspecialchars(), htmlentities(), nl2br() 等函数.

 addslashes(), stripslashes() 一般是入数据库和出库的时候使用,以免变量中存储类似引号这些关键词,这样的话,本来是内容的部分却被数据库识别为标识符来执行,就会引起错误.

 htmlspecialchars() 函数只用来转义少量HTML, &,双引号,大于号和小于号.并不会全部转换成 HTML 所定的 ASCII 转换

 htmlentities() 本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串。不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的。

 

自带函数去除html标记

strip_tags

  去掉 HTML 及 PHP 的标记。

  语法: string strip_tags(string str);

  传回值: 字串

  函式种类: 资料处理

 代码如下 复制代码


<?php 
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
echo $new; 

?> 

函式将特殊字元转成 HTML 的字串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。

  & (和) 转成 &amp;
  " (双引号) 转成 &quot;
  < (小于) 转成 &lt;
  > (大于) 转成 &gt;
  此函式只转换上面的特殊字元,并不会全部转换成 HTML 所定的 ASCII 转换。

 

这里只替换 html,js,css

 代码如下 复制代码

function get_enhtml($string){
$pattern=array ("'<script[^>]*?>.*?</script>'si",// 去掉 javascript
"'<style[^>]*?>.*?</style>'si",// 去掉 HTML 标记
"'<[/!]*?[^<>]*?>'si",//去掉 HTML 标记
"'<!--[/!]*?[^<>]*?>'si", // 去掉 注释标记
"'([rn])[s]+'", // 去掉空白字符
"'&(quot|#34);'i",
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(d+);'e");
$replace=array ("", "", "", "", "1", "", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(1)");
$string=preg_replace($pattern, $replace, $string);
$string=preg_replace("/<(.*?)>/","",$string);
$string=str_replace("n","",$string);
$string=str_replace("r","",$string);
$string=str_replace("  ","",$string);
$string=str_replace("  ","",$string);
return addslashes(trim($string));
}

替换所有html标签

 代码如下 复制代码

function noHTML($content)
    {
     $content = preg_replace("/<a[^>]*>/i",'', $content);  
  $content = preg_replace("/</a>/i", '', $content);   
  $content = preg_replace("/<div[^>]*>/i",'', $content);  
  $content = preg_replace("/</div>/i",'', $content);
  $content = preg_replace("/<font[^>]*>/i",'', $content);  
  $content = preg_replace("/</font>/i",'', $content);
  $content = preg_replace("/<p[^>]*>/i",'', $content);  
  $content = preg_replace("/</p>/i",'', $content);
  $content = preg_replace("/<span[^>]*>/i",'', $content);  
  $content = preg_replace("/</span>/i",'', $content);
  $content = preg_replace("/<?xml[^>]*>/i",'', $content);
  $content = preg_replace("/</?xml>/i",'', $content);
  $content = preg_replace("/<o:p[^>]*>/i",'', $content);
  $content = preg_replace("/</o:p>/i",'', $content);
  $content = preg_replace("/<u[^>]*>/i",'', $content);
  $content = preg_replace("/</u>/i",'', $content);
  $content = preg_replace("/<b[^>]*>/i",'', $content);
  $content = preg_replace("/</b>/i",'', $content);
  $content = preg_replace("/<meta[^>]*>/i",'', $content);
       $content = preg_replace("/</meta>/i",'', $content);
  $content = preg_replace("/<!--[^>]*-->/i",'', $content);//注释内容 
  $content = preg_replace("/<p[^>]*-->/i",'', $content);//注释内容      
  $content = preg_replace("/style=.+?['|"]/i",'',$content);//去除样式  
  $content = preg_replace("/class=.+?['|"]/i",'',$content);//去除样式  
  $content = preg_replace("/id=.+?['|"]/i",'',$content);//去除样式     
  $content = preg_replace("/lang=.+?['|"]/i",'',$content);//去除样式      
  $content = preg_replace("/width=.+?['|"]/i",'',$content);//去除样式   
  $content = preg_replace("/height=.+?['|"]/i",'',$content);//去除样式   
  $content = preg_replace("/border=.+?['|"]/i",'',$content);//去除样式   
  $content = preg_replace("/face=.+?['|"]/i",'',$content);//去除样式
     $content = preg_replace("/face=.+?['|"]/",'',$content);
     $content = preg_replace("/face=.+?['|"]/",'',$content);
     $content=str_replace( "&nbsp;","",$content);
     return $content;
    }

本文章来给大家介绍关于php 获取checkbox表单取值程序代码,有需要了解的朋友可进入参考,因为checkbox 属生与input有区别,所以这里特别来介绍一下。


设我们有一个html页面,代码如下:

 代码如下 复制代码

<FORM method="post" action="checkTest.php">
<INPUT name="test[]" type="checkbox" value="1" />
<INPUT type="checkbox" name="test[]" value="2" />
<INPUT type="checkbox" name="test[]" value="3" />
<INPUT type="checkbox" name="test[]" value="4" />
<INPUT type="checkbox" name="test[]" value="5" />
<INPUT type="submit" name="Submit" value="Submit" />
</FORM>

注意上面input的name属性,各个属性内容都一样,而且都是test[],加上[]的原因在于让test的内容变成数组形式传递。

checkTest.php的代码内容如下:

 代码如下 复制代码

<?php
echo implode(",",$_POST['test']);
?>

修饰符是php中正则表达式的一个重要的参考,下面我来给大家转一篇关于PHP中正则表达式模式修饰符详解,有需要了解的朋友可进入参考参考。

PHP模式修饰符又叫模式修正符,是在正则表达式的定界符之外使用。主要用来调整正则表达式的解释,提扩展了正则表达式在匹配、替换等操作的某些功能,增强了正则的能力。但是有很多地方的解释都是错误的,也容易误导别人,所以今天我把这个文档整理出来,供大家参考。

模式修正符号 功能描述

i 在和正则匹配是不区分大小写
m 将字符串视为多行。默认的正则开始“^”和结束“$”将目标字条串作为一单一的一“行”字符(甚至其中包括换行符也是如此)。如果在修饰符中加上“m”,那么开始和结束将会指点字符串的每一行的开头就是“^”结束就是“$”。
s 如果设定了这个修正符,那么,被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串。
x 忽略空白,除非进行转义的不被忽略。
e 只用在preg_replace()函数中,在替换字符串中逆向引用做正常的替换,将其作为PHP代码求值,并用其结果来替换所搜索的字符串。
A 如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说”/a/A”匹配”abcd”。
D 模式中的$字符权匹配目标字符的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前。如果设定了修正符m则忽略此项。
E 与”m”相反,如果使用这个修饰符,那么”$”将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。
U 贪婪模式,和问号的作用差不多,最大限度的匹配就是贪婪模式。

贪婪模式:

比如我们要匹配以字母“a”开头字母“b”结尾的字符串,但是需要匹配的字符串在“a”后面含有很多个“b”,比如“a bbbbbbbbbbbbbbbbb”,那正则表达式是会匹配第一个“b”还是最后一个“b”呢?如果你使用了贪婪模式,那么会匹配到最后一个“b”,反之只是匹配到第一个“b”。

PHP正则表达式贪婪模式使用实例:

1./a.+?b/  
2./a.+b/U
对比不使用贪婪模式的实例如下:

1./a.+b/ 
上面使用了一个修饰符U,详见关于修饰符的介绍。

其他资料:

模式修正符: 解说正则表达式模式中使用的修正符

说明:下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略,其它字符会导致错误。

i (PCRE_CASELESS)

如果设定此修正符,模式中的字符将同时匹配大小写字母。

m(PCRE_MULTILINE)

默认情况下,PCRE 将目标字符串作为单一的一“行”字符所组成的(甚至其中包含有换行符也是如此)。“行起始”元字符(^)仅仅匹配字符串的起始,“行结束”元字符($)仅 仅匹配字符串的结束,或者最后一个字符是换行符时其前面(除非设定了 D 修正符)。这和 Perl 是一样的。
当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。

s(PCRE_DOTALL)

如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。这和 Perl 的 /s 修正符是等效的。排除字符类例如 [^a] 总是匹配换行符的,无论是否设定了此修正符。

x(PCRE_EXTENDED)

如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的 # 以及下一个换行符之间的所有字符,包括两头,也都被忽略。这和 Perl 的 /x 修正符是等效的,使得可以在复杂的模式中加入注释。然而注意,这仅适用于数据字符。空白字符可能永远不会出现于模式中的特殊字符序列,例如引入条件子模式 的序列 (?( 中间。

e

如果设定了此修正符,preg_replace() 在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。
只有 preg_replace() 使用此修正符,其它 PCRE 函数将忽略之。
注: 本修正符在 PHP3 中不可用。

A(PCRE_ANCHORED)

如果设定了此修正符,模式被强制为“anchored”,即强制仅从目标字符串的开头开始匹配。此效果也可以通过适当的模式本身来实现(在 Perl 中实现的唯一方法)。

D(PCRE_DOLLAR_ENDONLY)

如果设定了此修正符,模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前(但不会匹配任何其它换行符之前)。如果设定了 m 修正符则忽略此选项。Perl 中没有与其等价的修正符。

S

当一个模式将被使用若干次时,为加速匹配起见值得先对其进行分析。如果设定了此修正符则会进行额外的分析。目前,分析一个模式仅对没有单一固定起始字符的 non-anchored 模式有用。

U(PCRE_UNGREEDY)

本修正符反转了匹配数量的值使其不是默认的重复,而变成在后面跟上“?”才变得重复。这和 Perl 不兼容。也可以通过在模式之中设定 (?U) 修正符或者在数量符之后跟一个问号(如 .*?)来启用此选项。

X(PCRE_EXTRA)

此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式中的任何反斜线后面跟上一个没有特殊意义的字母导致一个错误,从而保留此组合以备将来扩充。默认情况下,和 Perl 一样,一个反斜线后面跟一个没有特殊意义的字母被当成该字母本身。当前没有其它特性受此修正符控制。

u(PCRE_UTF8)

此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。本修正符在 Unix 下自 PHP 4.1.0 起可用,在 win32 下自 PHP 4.2.3 起可用。自 PHP 4.3.5 起开始检查模式的 UTF-8 合法性。


PHP正则表达式的基本语法:

一个正则表达式,分为三个部分:分隔符,表达式和修饰符。

分隔符可以是除了特殊字符以外的任何字符(比如"/ !"等等),常用的分隔符是"/"。表达式由一些特殊字符(特殊字符详见下面)和非特殊的字符串组成,比如"[a-z0-9_-]+@[a-z0-9_-.]+"可以匹配一个简单的电子邮件字符串。修饰符是用来开启或者关闭某种功能/模式。下面就是一个完整的正则表达式的例子:

/hello.+?hello/is  上面的正则表达式"/"就是分隔符,两个"/"之间的就是表达式,第二个"/"后面的字符串"is"就是修饰符。

在表达式中如果含有分隔符,那么就需要使用转义符号"",比如"/hello.+?/hello/is"。转义符号除了用于分隔符外还可以执行特殊字符,全部由字母构成的特殊字符都需要""来转义,比如"d"代表全体数字。

[!--infotagslink--]

相关文章

  • PHP session_start()很慢问题分析与解决办法

    本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25
  • js URLdecode()与urlencode方法支持中文解码

    下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20
  • php中json_decode()和json_encode()用法与中文不显示解决办法

    本文章介绍了关于php中json_decode()和json_encode()用法与中文不显示解决办法,有需要的朋友可以参考一下下。 php中json_decode()和json_encode() 1.json_decode(...2016-11-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • VSCode 配置uni-app的方法

    这篇文章主要介绍了VSCode 配置uni-app的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • vscode安装git及项目开发过程

    这篇文章主要介绍了vscode安装git及项目开发过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-19
  • Vscode上使用SQL的方法

    这篇文章主要介绍了Vscode上使用SQL的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-26
  • 微信小程序二维码生成工具 weapp-qrcode详解

    这篇文章主要介绍了微信小程序 二维码生成工具 weapp-qrcode详解,教大家如何在项目中引入weapp-qrcode.js文件,通过实例代码给大家介绍的非常详细,需要的朋友可以参考下...2021-10-23
  • PHP分布式框架如何使用Memcache同步SESSION教程

    本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • PHP json_encode() 函数详解及中文乱码问题

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式。<&#63;php$arr = array ( 'Name'=>'希亚', 'Age'...2015-11-08
  • 浅谈Vue开发人员的7个最好的VSCode扩展

    这篇文章主要介绍了浅谈Vue开发人员的7个最好的VSCode扩展,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • VSCode配置C#运行环境的完整步骤

    这篇文章主要给大家介绍了关于VSCode配置C#运行环境的完整步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • 详解C#中的session用法

    这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • Python3使用Selenium获取session和token方法详解

    这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17
  • VSCode C++多文件编译的简单使用方法

    这篇文章主要介绍了VSCode C++多文件编译的简单使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • vscode和cmake编译多个C++文件的实现方法

    这篇文章主要介绍了vscode和cmake编译多个C++文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • 关于VSCode格式化JS自动添加或去掉分号的问题

    这篇文章主要介绍了VSCode格式化JS自动添加或去掉分号的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-10-12
  • vscode通过Remote SSH远程连接及离线配置的方法

    这篇文章主要介绍了vscode通过Remote SSH远程连接及离线配置的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-16
  • VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h”或者检测到 #include 错误,请更新includePath)(POSIX API)

    这篇文章主要介绍了VS Code C/C++环境配置教程(无法打开源文件“xxxxxx.h” 或者 检测到 #include 错误。请更新includePath) (POSIX API),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-13