php字元串匹配
① 【php】同一字元串,多個條件,如何高效的匹配
樓主的意思的是看一個字元串里有多少種字元嗎?如果是這樣可以這樣做:
用兩個函數處理即可:
$array=explode($str);
$array=array_unique($array);
第一個函數把字元串$str分解成一液李握個數組,賦給$array;
然後去除數組中相擾搜同的元素即可,鬧慶剩下的就是數組在賦給$array即可。
純手打,望採納!
② php正則匹配指定字元串
preg_match('/var mv_hash = \"([\s\S]*)\"/',$str,$match);
print_r($match);
③ PHP符串處理函數
PHP5字元串處理函數
addcslashes — 為字元串裡面的部分字元添加反斜線轉義字元
addslashes — 用指定的方式對字元串裡面的字元進行轉義
bin2hex — 將二進制數據轉換成十六進製表示
chop — rtrim() 的別名函數
chr — 返回一個字元的ASCII碼
chunk_split — 按一定的字元長度將字元串分割成小塊
convert_cyr_string — 將斯拉夫語字元轉換為別的字元
convert_uudecode — 解密一個字元串
convert_uuencode — 加密一個字元串
count_chars — 返回一個字元串裡面的字元使用信息
crc32 — 計算一個字元串的crc32多項式
crypt — 單向散列加密函數
echo — 用以顯示一些內容
explode — 將一個字元串用分割符轉變為一數組形式
fprintf — 按照要求對數據進行返回,並直接寫入文檔流
get_html_translation_table — 返回可以轉換的HTML實體
hebrev — 將Hebrew編碼的字元串轉換為可視的文本
hebrevc — 將Hebrew編碼的字元串轉換為可視的文本
html_entity_decode — htmlentities ()函數的反函數,將HTML實體轉換為字元
htmlentities — 將字元串中一些字元轉換為HTML實體
htmlspecialchars_decode — htmlspecialchars()函數的反函數,將HTML實體轉換為字元
htmlspecialchars — 將字元串中一些字元轉換為HTML實體
implode — 將數組用特定的分割符轉變為字元串
join — 將數組轉變為字元串,implode()函數的別名
levenshtein — 計算兩個詞的差別大小
localeconv — 獲取數字相關的格式定義
ltrim — 去除字元串左側的空白或者指定的字元
md5_file — 將一個文件進行MD5演算法加密
md5 — 將一個字元串進行MD5演算法加密
metaphone — 判斷一個字元串的發音規則
money_format — 按照參數對數字進行格式化的輸出
nl_langinfo — 查詢語言和本地信息
nl2br — 將字元串中的換行符「n」替換成「
」
number_format — 按照參數對數字進行格式化的輸出
ord — 將一個ASCII碼轉換為一個字元
parse_str — 把一定格式的字元串轉變為變數和值
print — 用以輸出一個單獨的值
printf — 按照要求對數據進行顯示
quoted_printable_decode — 將一個字元串加密為一個8位的二進制字元串
quotemeta — 對若干個特定字元進行轉義
rtrim — 去除字元串右側的空白或者指定的字元
setlocale — 設置關於數字,日期等等的本地格式
sha1_file — 將一個文件進行SHA1演算法加密
sha1 — 將一個字元串進行SHA1演算法加密
similar_text — 比較兩個字元串,返回系統認為的相似字元個數
soundex — 判斷一個字元串的發音規則
sprintf — 按照要求對數據進行返回,但是不輸出
sscanf — 可以對字元串進行格式化
str_ireplace — 像str_replace()函數一樣匹配和替換字元串,但是不區分大小寫
str_pad — 對字元串進行兩側的補白
str_repeat — 對字元串進行重復組合
str_replace — 匹配和替換字元串
str_rot13 — 將字元串進行ROT13加密處理
str_shuffle — 對一個字元串裡面的字元進行隨機排序
str_split — 將一個字元串按照字元間距分割為一個數組
str_word_count — 獲取字元串裡面的英文單詞信息
strcasecmp — 對字元串進行大小比較,不區分大小寫
strchr — 通過比較返回一個字元串的部分strstr()函數的別名
strcmp — 對字元串進行大小比較
strcoll – 根據本地設置對字元串進行大小比較
strcspn — 返回字元連續非匹配長度的值
strip_tags — 去除一個字元串裡面的HTML和PHP代碼
stripcslashes — 反轉義addcslashes()函數轉義處理過的字元串
stripos — 查找並返回首個匹配項的位置,匹配不區分大小寫
stripslashes — 反轉義addslashes()函數轉義處理過的字元串
stristr — 通過比較返回一個字元串的部分,比較時不區分大小寫
strlen — 獲取一個字元串的編碼長度
strnatcasecmp — 使用自然排序法對字元串進行大小比較,不區分大小寫
strnatcmp — 使用自然排序法對字元串進行大小比較
strncasecmp — 對字元串的前N個字元進行大小比較,不區分大小寫
strncmp — 對字元串的前N個字元進行大小比較
strpbrk — 通過比較返回一個字元串的部分
strpos — 查找並返回首個匹配項的位置
strrchr — 通過從後往前比較返回一個字元串的.部分
strrev — 將字元串裡面的所有字母反向排列
strripos — 從後往前查找並返回首個匹配項的位置,匹配不區分大小寫
strrpos – 從後往前查找並返回首個匹配項的位置
strspn — 匹配並返回字元連續出現長度的值
strstr — 通過比較返回一個字元串的部分
strtok — 用指定的若干個字元來分割字元串
strtolower — 將字元串轉變為小寫
strtoupper –將字元串轉變為大寫
strtr — 對字元串比較替換
substr_compare — 對字元串進行截取後的比較
substr_count — 計算字元串中某字元段的出現次數
substr_replace — 對字元串中的部分字元進行替換
substr — 對字元串進行截取
trim — 去除字元串兩邊的空白或者指定的字元
ucfirst — 將所給字元串的第一個字母轉換為大寫
ucwords — 將所給字元串的每一個英文單詞的第一個字母變成大寫
vfprintf — 按照要求對數據進行返回,並直接寫入文檔流
vprintf — 按照要求對數據進行顯示
vsprintf — 按照要求對數據進行返回,但是不輸出
wordwrap — 按照一定的字元長度分割字元串
strtolower()函數把所有字元變成小寫,strtoupper()函數把所有字元變成大寫,ucfirst()函數將所給字元串的第一個字母轉換為大寫,ucwords()函數將所給字元串的每一個英文單詞的第一個字母變成大寫。ucfirst()只處理字元串的首個字元,ucwords()只處理每個單詞的首字母(以空格來界定是否是單詞,「today!Hi」、「today.Hi」 會被認為是一個單詞),對於其餘字母的大小寫狀態並不改變。 ;
④ php中正則匹配字元串中的指定字元
<?php
$str="0502-cpd-wx-html-new-01";
$str=preg_replace('/^([^-]+-){4}([^-]+)-[^-]+$/','$2',$str);
echo$str;
?>
⑤ PHP 字元串關鍵字匹配
只要內容中有關鍵字就替換成超鏈接
functionTextHandle($source,Array$texts){
/**
*@sourceString需要處理的源字元串
*@textsArray需要替換的所有關鍵字
*
*/
foreach($textsAS$text){
$source=str_replace($text,"<ahref=''>".$text."</a>",$source);
}
return$source;
}
$source="你好,我是一個帥哥";
echoTextHandle($source,['你好','帥哥']);//將[你好][帥哥]替換掉.
⑥ php正則最小匹配
1,preg_grep(pattern,array);它的返回值是一個新數組,新數組的元素是成功匹配的元素。
⑦ php正則如何在一個字元串中匹配一個數字
$str_arr[] = '1,11,21,35,41';
$str_arr[] = '1,5,15,21,35,41';
$str_arr[] = '1,5,';
$str_arr[] = '5';
$matche_arr = array();
foreach($str_arr as $value){
if(preg_match('/(^|,)5(,|$)/',$value)){
$matche_arr[] = $value;
}
}
print_r($matche_arr);
⑧ php中正則表達式匹配字元串並輸出
用explode更方便,例如:
$str=".....\t分割的字元串";
list($t,$r)=explode("\t",
$str);
echo
$r;
上面的$t是用來佔位的,代碼執行後$r就是我們需要的第二個欄位值
⑨ php 怎麼匹配兩個字元串的相似度
php自帶一個函數similar_text,可以計算兩個字元串的相似度,但是這個的准確性、速度不是很好。網上有很多其他的方法和現成的包,你可以搜索看看。下面簡單列舉一個類
class LCS {
var $str1;
var $str2;
var $c = array();
/*返回串一和串二的最長公共子序列*/
function getLCS($str1, $str2, $len1 = 0, $len2 = 0) {
$this->str1 = $str1;
$this->str2 = $str2;
if ($len1 == 0) $len1 = strlen($str1);
if ($len2 == 0) $len2 = strlen($str2);
$this->initC($len1, $len2);
return $this->printLCS($this->c, $len1 - 1, $len2 - 1);
}
/*返回兩個串的相似度*/
function getSimilar($str1, $str2) {
$len1 = strlen($str1);
$len2 = strlen($str2);
$len = strlen($this->getLCS($str1, $str2, $len1, $len2));
return $len * 2 / ($len1 + $len2);
}
function initC($len1, $len2) {
for ($i = 0; $i < $len1; $i++) $this->c[$i][0] = 0;
for ($j = 0; $j < $len2; $j++) $this->c[0][$j] = 0;
for ($i = 1; $i < $len1; $i++) {
for ($j = 1; $j < $len2; $j++) {
if ($this->str1[$i] == $this->str2[$j]) {
$this->c[$i][$j] = $this->c[$i - 1][$j - 1] + 1;
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
$this->c[$i][$j] = $this->c[$i - 1][$j];
} else {
$this->c[$i][$j] = $this->c[$i][$j - 1];
}
}
}
}
function printLCS($c, $i, $j) {
if ($i == 0 || $j == 0) {
if ($this->str1[$i] == $this->str2[$j]) return $this->str2[$j];
else return "";
}
if ($this->str1[$i] == $this->str2[$j]) {
return $this->printLCS($this->c, $i - 1, $j - 1).$this->str2[$j];
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
return $this->printLCS($this->c, $i - 1, $j);
} else {
return $this->printLCS($this->c, $i, $j - 1);
}
}
}