导航:首页 > 编程语言 > php53ereg

php53ereg

发布时间:2022-07-24 06:27:35

php ereg函数

preg_match preg_match_all preg_replace preg_replace_callback

② php5.3提示Function ereg() is deprecated Error问题解决方法

本文实例讲述了php5.3提示Function
ereg()
is
deprecated
Error问题解决方法。分享给大家供大家参考。具体实现方法如下:
一、问题:
PHP
5.3
ereg()
无法正常使用,提示“Function
ereg()
is
deprecated
Error”是因为它长ereg
函数进行了升级处理,需要像preg_match使用/
/来规则了,当然也是php5.3把ereg给废掉的节奏了。
PHP
5.3
ereg()
无法正常使用,提示“Function
ereg()
is
deprecated
Error”。
问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来就加了个preg_match。此问题解决办法很简单,在ereg前加个过滤提示信息符号即可:把ereg()变成@ereg()。这样屏蔽了提示信息,但根本问题还是没有解决,php在5.2版本以前ereg都使用正常,在5.3以后,就要用preg_match来代替ereg。所以就需要变成这样。
原来:ereg("^[0-9]*$",$page)变成:preg_match("/^[0-9]*$/",$page)
特别提醒:posix与perl的很明显的表达区别就是是否加斜杠,所以与ereg相比,后者在正则的前后分别增加了两个"/"符号,不能缺少。
例如:
改前:
复制代码
代码如下:function
inject_check($sql_str)
{
$sql_str
=
strtolower($sql_str);
return
eregi('fopen|post|eval|select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile',
$sql_str);
//
进行过滤
}
二、解决方法:
找到代码所在的文件位置:
复制代码
代码如下:function
inject_check($sql_str)
{
$sql_str
=
strtolower($sql_str);
return
preg_match('/fopen|post|eval|select|insert|and|or|update|delete|'|/*|*|../|./|union|into|load_file|outfile/',
$sql_str);
//
进行过滤
}

注意:一定要加'/'开头与结束。此段参考:http://www.jb51.net/article/38857.htm
补充:此问题在php5.2之前版本不会出现。
希望本文所述对大家的PHP程序设计有所帮助。

③ php中ereg_replace()函数用法详解

ereg_replace (PHP 3, PHP 4, PHP 5)-- 正则表达式替换

php 手册上有更详细的介绍,不过推荐preg_replace() 函数使用了 Perl 兼容正则表达式语法,而且速度更快。

④ PHP正则表达式ereg的问题

eregi 和 ereg_replace 这两个函数到5.3以后就被废弃了,可以使用preg_match, preg_replace进行替换,举个例子:

<?php
$wenben="hello,world";
print_r(preg_match('/[a-z]*/i',$wenben));
$result=preg_replace('/[a-z]*/i',"TiHuan",$wenben);
var_mp($result);

preg_replace,就是替换匹配的字符串,并返回替换后的结果。


preg_match, 就是匹配字符串,返回匹配的结果,为0或者1,当第一次匹配成功,就不继续匹配了。


这些文件函数,你都可以参考php 官方手册:


http://cn2.php.net/manual/zh/function.preg-replace.php

⑤ 如何实现"三级栏目_二级栏目_一级栏目_网站名称

$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;修改为:$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];
接下来将模板的标题标签
{dede:field.title/} - {dede:global.cfg_webname/}修改为:{dede:field.title function='ereg_replace(" - "," - ",@me)'/} - {dede:global.cfg_webname/}即可。
如果您对栏目中间的连接符不满意,可以修改include/arc.listview.class.php,找到53行
$this->Fields['title'] = ereg_replace("[]"," / ",$this->TypeLink->GetPositionLink(false));
把/ 删除 注意留一个空格 " ?"
这样在模板标题标签部分就可以修改各级栏目间的连接符
另外一种方法:
其实模板可以不用修改,只要修改以下两个地方变可以实现:三级栏目_二级栏目_一级栏目_网站名
首先:将 include/arc.listview.class.php 文件的第53行:
$this->Fields['title'] = ereg_replace("[]"," / ",$this->TypeLink->GetPositionLink(false));
中的/ 替换为 _ 这个样成功去除标题中的"/"替换为了"_"

⑥ PHP5.3x ereg_replace改成preg_replace

preg_replace的正则表达式前后要加 /

//这个是把连续的空格替换成下划线
$file_name=preg_replace("/[]+/","_",$file_name);

//我估计$pattern变量里也没有加/
$valid_file=preg_replace("/".$pattern."/","_",trim($fname));

⑦ PHP 中ereg函数的应用问题,这函数是怎么用的

先看看他的参数ereg(匹配模式,字符串,返回数组)。
其中匹配模式一般是正则表达式,如你的例子中正则模式是linux 下的grep命令的匹配,[[:alpha:]] 代表字母[[:alnum:]] 代表字母与数字字符;第二个参数是字符串,指你需要用正则模式来匹配检验的对象;
最后返回匹配结果,放到一个数组中,var_mp函数是打印数组的函数,$register即你这段代码匹配的结果数组。
其实不明白最好是看手册,手册才是王道啊。。

⑧ php里ereg_replace(),给pattern里的特殊字符加\转义,因为pattern里有用户提交数据,有什么办法可以办到

$pattern = $_POST['name'];
$pattern = addslashes($pattern);
转义单引、双引、null、\
对于html、php特殊字符还可以htmlentities($pattern),字符处理、协议处理是php强项,是我的话首先就在javascript中把这些字符过滤掉。

⑨ php中ereg() ,preg_match() 有啥区别

ereg是早先的,preg_match是后加的,php6要废除posix正则了,不过很奇怪,很多老外的经典教程里只写posix正则,不写perl型的

阅读全文

与php53ereg相关的资料

热点内容
javamap取值 浏览:768
mac和win磁盘加密软件 浏览:474
苹果为什么会连接不到服务器 浏览:726
pdf格式文件如何保存 浏览:303
小霸王服务器tx什么意思 浏览:75
解释dns命令 浏览:584
dmx512怎么编程 浏览:744
北京云主机17t云服务器 浏览:232
php服务器url地址 浏览:440
哪里看书免费app 浏览:437
php删除数组中重复值 浏览:786
经理下命令咱都别说话是什么意思 浏览:625
上海风机可编程控制器价格 浏览:249
工行app取消自动转账功能在哪里 浏览:719
传奇特殊命令 浏览:677
怎么查移动定向流量使用的app 浏览:82
进入组策略的命令 浏览:139
python数据结构和内存 浏览:29
python软件功能简介 浏览:786
外国程序员一般多少岁退休 浏览:919