導航:首頁 > 編程語言 > 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相關的資料

熱點內容
python入門迷宮 瀏覽:67
Python打折代碼不含商品 瀏覽:218
把多個Word合成一個pdf 瀏覽:354
aes演算法描述 瀏覽:897
新手機壓縮包在哪 瀏覽:779
java抽獎程序源碼 瀏覽:698
汽車壓縮機又叫 瀏覽:95
android讀取data文件 瀏覽:874
紅旗智聯app怎麼跟h5車子連接 瀏覽:138
材料化學pdf 瀏覽:114
伺服器機房都有什麼東西 瀏覽:370
最近長陰短柱量能副圖指標源碼 瀏覽:647
python字元串去除後四位 瀏覽:167
捷速pdf編輯器破解版 瀏覽:725
大帶寬伺服器怎麼租 瀏覽:299
籃球程序員單身難嗎 瀏覽:877
一接到命令就 瀏覽:488
挖幣伺服器是什麼 瀏覽:524
攜帶型u盤加密 瀏覽:464
apex找不到伺服器怎麼解決 瀏覽:316