1. php 正則過濾word裡面粘貼過來的標簽
用strip_tags()函數是最直接的了,用正則也行,以下是PHP手冊中的過濾標簽
<?php
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 標記
"'([\r\n])[\s]+'", // 去掉空白字元
"'&(quot|#34);'i", // 替換 HTML 實體
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(|#169);'i",
"'(\d+);'e");
$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace ($search, $replace, $document);
?>
2. php 如何過濾 單引號 雙引號 $ < > 等N種特殊符號謝謝
我給樓主吧- - 首先是過濾html,將html編碼轉換為實體編碼 /**
* 將特殊字元轉成 HTML 格式。
* @param string $value - 字元串或者版數組
* @return array
*/
public static function htmlspecialchars($value) {
return is_array($value) ? array_map('k::htmlspecialchars', $value) :
preg_replace('/&((#(\d{3,5}|權x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
} 還有一個去除html編碼的,可以直接用php的函數strip_tags()
3. mysql如何過濾特殊字元用PHP語言。高分求助,給補分
^function deletehtml($str) {
$str = trim($str);
$str = preg_replace("</P>","1234a3211",$str);
$str = preg_replace("</p>","1234a3211",$str);
$str = preg_replace("<br/>","1234a3211",$str);
$str = preg_replace("/<(.[^>]*)>/","",$str);
$str = preg_replace("/([\r\n])[\s]+/","",$str);
$str = preg_replace("/-->/","",$str);
$str = preg_replace("/<!--.*/","",$str);
$str = preg_replace("/&(quot|#34);/","",$str);
$str = preg_replace("/&(amp|#38);/", "/&/",$str);
$str = preg_replace("/&(lt|#60);/", "/</",$str);
$str = preg_replace("/&(gt|#62);/", ">",$str);
$str = preg_replace("/&(nbsp|#160);/", "",$str);
$str = preg_replace("/&(iexcl|#161);/", "/\xa1/",$str);
$str = preg_replace("/&(cent|#162);/", "/\xa2/",$str);
$str = preg_replace("/&(pound|#163);/", "/\xa3/",$str);
$str = preg_replace("/&(|#169);/", "/\xa9/",$str);
$str = preg_replace("/(\d+);/", "",$str);
$str = preg_replace("/</", "",$str);
$str = preg_replace("/>/", "",$str);
$str = preg_replace("/\r\n/", "",$str);
$str = preg_replace("/1234a3211/", "/<br/>/",$str);
return $str;
}
4. php獲取指定內容後進行過濾
一般來說strip_tags作用就是去掉內容中的html標簽
你可以這樣
<?php
$content = strip_tags($content);
echo '<pre>';
echo $content;
echo '</pre>';
?>
你看看這些內容是否符合要求內,如果不符合要求 就用str_replace函數替容換,或者也可以用正則表達式,preg_replace替換
這樣處理後肯定就能達到你的目的
5. PHP如何去掉轉義
string addslashes ( string str) 返回字元串,該字元串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。
這些字元是單引號(\')、雙引號(\")、反斜線(\\)與 NUL(NULL 字元) stripslashes作用相反在處理mysql和GET、POST的數據時,常常要對數據的引號進行轉義操作。 PHP中有三個設置可以實現自動對』(單引號),」(雙引號),\\(反斜線)和 NULL 字元轉移。 PHP稱之為魔術引號,這三項設置分別是 magic_quotes_gpc 影響到 HTTP 請求數據(GET,POST 和 COOKIE)。
不能在運行時改變。在 PHP 中默認值為 on。 magic_quotes_runtime 如果打開的話,大部份從外部來源取得數據並返回的函數,包括從資料庫和文本文件,所返回的數據都會被反斜線轉義。該選項可在運行的時改變,在 PHP 中的默認值為 off。 magic_quotes_sybase 如果打開的話,將會使用單引號對單引號進行轉義而非反斜線。
此選項會完全覆蓋 magic_quotes_gpc。如果同時打開兩個選項的話,單引號將會被轉義成 」。而雙引號、反斜線 和 NULL 字元將不會進行轉義。
雖然方便的實現了對特殊符號的自動轉義,但是這樣會使得程序效率降低,並導致程序可移植變得麻煩。在不知道伺服器ini設置的情況下,還需要調用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()來檢測狀態。使用stripslashes去掉轉義
6. PHP 正則表達式如何添加URL參數 ,並把&替換成amp;
<?php
$content="你的網頁源碼比如<a href=\"login.php\">login</a>";
$res=preg_match_all("/href=\"(.)+?\"/",$content,$arr);
if($res!=0){
foreach($arr[0] as $val)
if(strrchr($val,".php\"")==".php\""){
$new = str_replace(".php",".php?sid=123456",$val);
}
else if(strrchr($val,".php?q=reg\"")==".php?q=reg\""){
$new = str_replace(".php?q=reg",".php?q=reg&sid=123456",$val);
}
$content=str_replace($val,$new,$content);
}
echo $content;
?>
7. php中的正則表達式not &quot;{,2}&quot;的意思是指不包括0到2個的前導嗎
本來以為你想要說,你的正則表達式本身是:
not"{,2}"
的,但發現,如果真是這樣寫,貌似也會錯誤的吧。"要寫成\"才對。
所以:
把相關代碼貼出來,說出你的目的,這樣別人才好幫你。
8. php中如何過濾用戶的輸入麻煩告訴我
可以採用以下復幾點措施。
(制1)在用戶數據進入資料庫之前使用addslashes()函數過濾,可以進行一些字元的轉義,並過濾掉可能引起資料庫問題的字元。可以使用stripslashes()將數據返回到原始形式。
(2)在php.infi中開啟magic_quotes_gpc和magic_quotes_runtime指令。它們可以自動的添加和過濾斜杠,前者主要用於格式化GET,POST,和cookie變數,後者用於過濾進出資料庫的數據。
(3)當在system()或者exex()函數中使用用戶輸入數據作為參數時,必須使用escapeshellcmd()。用來避免懷有惡意的用戶強迫系統運行某些命令。
(4)可以使用stip_tags()從一個字元串中去掉HTML和PHP標記,這樣可以避免用戶將惡意節本植入到用戶的數據中。
(5)可以使用htmlspecialchars(),可以將字元專程它們的HTML等價實體。例如,<將被轉換成< ,該函數可以將任何腳本轉換成無害的字元。
總之,在使用用戶的數據時,一定要小心,原則即是不要相信用戶輸入的任何數據,必須要進行過濾和轉換。
9. php 如何過濾特殊字元,如 ◆ )- : 、 、!! / 等
可以用 str_replace() 函數統一替換,如:
$string = "測試◆例子♂ 在此 !";
$replace = array('◆','♂',')','=','+','$','¥','-','、','、',':',';','!','!','/');
$string = str_replace($replace, '', $string);
echo $string;
10. php截取字元串以及去掉html標記
第一個很簡單抄,就用襲你提供這個函數就可以。
不過第二個沒有函數能執行。因為如果是英文字元應該佔用1位,但中文不一樣,utf8的一個漢字佔用3個字元,這樣如果出現中英文一起的情況就會出現亂碼。必須自定義函數解決,下面給你一個簡單的
<?php
function chinesesubstr($str,$start,$len) {//$str是指字元串,$start指字元串的起始位置,$len指字元串長度
$strlen=$start+$len; //用$strlen存儲字元串的總長度
for($i=0;$i<$strlen;$i++) {
if(ord(substr($str,$i,1))>0xa0) { //如果字元串中出現漢字,也就是ASC碼大於0xa0的。作出判斷與英文字元不一樣。
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
}
return $tmpstr;
}
?>