㈠ php屏蔽一段HTML代碼
<?php& `8 ^, }, E' j/ W' j
function StripHTML($string){. \, V/ t+ d8 o
$pattern=array ("'<script[^>]*?>.*?</script>'si", "'<style[^>]*?>.*?</style>'si", "'<[/!]*?[^<>]*?>'si", "'([
])[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", "'&(|#169);'i", "'(d+);'e");
$replace=array ("", "", "\1", "", "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(\1)");7 f: V6 a$ D! s: q
return preg_replace ($pattern, $replace, $str);
}
" e/ P+ M# ]0 O9 R0 q
?>
利用strip_tags()就可以把html標簽去除掉
<?php
$str = '<a href="http://harryxu.cn">harryxu</a>'; E' y! t( K6 m' |9 \
echo(htmlspecialchars($str) . '<br />');/ `" _* h" r# x5 i" \1 C
echo(strip_tags($str));
. P. t! i7 I5 D+ X% o
// output:
// <a href="http://harryxu.nc">harryxu</a> Y' T) V' y$ t- z: d% }! h
// harryxu
?>
去除所有js,html,css代碼
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'<style[^>]*?>.*?</style>'si", // 去掉 css
"'<[/!]*?[^<>]*?>'si", // 去掉 HTML 標記
"'<!--[/!]*?[^<>]*?>'si", // 去掉 注釋標記# m# g3 V9 F- U! `8 O4 l, [
"'([rn])[s]+'", // 去掉空白字元3 p$ c& X7 x- y7 Q
"'&(quot|#34);'i", // 替換 HTML 實體+ E. t- E, L% u# ?( W
"'&(amp|#38);'i",0 D; g# s' Z" v" L
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",# N* E! |7 }( y" p O1 O/ E
"'&(cent|#162);'i",2 T: J; m) a3 r
"'&(pound|#163);'i",8 E4 a: R4 B Z# V! \
"'&(|#169);'i",
"'(d+);'e"); // 作為 PHP 代碼運行
$replace = array ("",
"",
"",
"",1 `1 Z0 I' x3 n$ }1 Q' ?+ K
"1",! N) R x7 [/ ^6 E6 O3 l
""",
"&",
"<",. c2 t3 T! L+ l* p. d) x# Q# @
">",
" ",
chr(161),) i' y# E& k1 I
chr(162),( h3 q/ C3 X5 [: O7 ~9 z4 s0 ?
chr(163),' g+ P! A. A% M( R
chr(169),
"chr(1)");
//$document為需要處理字元串,如果來源為文件可以$document = file_get_contents($filename);
$out = preg_replace($search, $replace, $document);
㈡ php 判斷字元串數字
有兩種方法
第一種:直接使用一個函數, is_numeric() 這個函數就是檢測參數是否為數字,如果是就返回true,如果不是就返回false,比如:
1
2
<?php
is_numeric( 'abcd123' ) or die('提供的參數不是數字');
第二種:使用正則表達式匹配,匹配成功就是數字,返回true,匹配不成功就不是數字,返回false
比如:
1
2
<?php
<a href="https://www..com/s?wd=preg_match&tn=44039180_cpr&fenlei=-_5y9YIZ0lQzqlpA-" target="_blank" class="-highlight">preg_match</a>('/^\d+$/i', 'abcd123') or die('提供的數據不是數字');
㈢ thinkphp 循環數組
用兩次foreach可以實現你要的結果:
實現:
$id=array('1','2','3','4','5','6','7');
$ae=array('20','12','31','55','21','68','78');
上面是你的數據,你要的結果是這樣嗎?
//組裝後的數組:
array(7){
[0]=>array(1){
[1]=>string(2)"20"
}
[1]=>array(1){
[2]=>string(2)"12"
}
[2]=>array(1){
[3]=>string(2)"31"
}
[3]=>array(1){
[4]=>string(2)"55"
}
[4]=>array(1){
[5]=>string(2)"21"
}
[5]=>array(1){
[6]=>string(2)"68"
}
[6]=>array(1){
[7]=>string(2)"78"
}
}
//下面是json數組:
[{"1":"20"},{"2":"12"},{"3":"31"},{"4":"55"},{"5":"21"},{"6":"68"},{"7":"78"}]
3.代碼如下:
$id=array('1','2','3','4','5','6','7');
$ae=array('20','12','31','55','21','68','78');
$result=array();
foreach($idas$k1=>$v1)
{
foreach($aeas$k2=>$v2)
{
if($k1==$k2)
$result[]=array($v1=>$v2);
}
}
mp($result);
echojson_encode($result);
4. 如果不是,再追問
㈣ 請問php中foreach循環中,如何修改$key值
這個$key跟for循環中的$key是兩個概念了
比如:
$arr=['k1'=>'v1','k2'=>'v2','k3'=>'v3'];
//取v2的值
print_r($arr['k2']);
$arr=['v1','v2','v3'];
//取v2的值
print_r($arr[1]);
//上面兩個數組中,分別得到v2這個值所用的方法,有什麼不同?
用foreach循環,可以得到數組中元素的key值跟value值,當然key值可以是數字,也可以是字元串啊
如果你想下一次循環,直接到$key=$key+10的時候,首先,如果$key是字元串,+10就會有錯誤
你可以:
1.循環一次,將用過的元素通過php函數array_splice()或unset()刪除,剩下的可以再次循環
2.新建一個數組變數,用來你的操作
你指的控制key值是什麼意思?不太明白
㈤ PHP 怎麼從數組中取值
//你可以用下面的方式試下,我這邊考慮到的是遍歷哈,假設上面的數組名字為$cate_arr
foreach($cate_arras$v){
$values=array_values($v);
if(in_array("分類1",$values)){
$id=$v["id"];//這樣就可以得到分類1的ID值了
break;
}
}