① php高手進str_replace如果要替換多個關鍵字的話,第一個參數要怎麼寫
用正則替換
preg_replace('/[$find1|$find2|$find3]/',replace,string,count);
或者用一個循環來處理
$find_list = array($find1,$find2,$find3);
foreach($find_list as $find)
{
str_replace(find,replace,string,count);
}
② dede後台怎麼批量替換文章中的關鍵詞
打開後台資料庫內容替換功能(url:/dede/sys_data_replace.php),找到數據表dede_archives,在表欄位中找到keywords,點擊選中,輸入舊關鍵詞和新關鍵詞,輸入驗證碼,選擇開始替換數據即可
註:數據表一定要選對,操作之前一定要先備份資料庫,以免操作失誤還可以恢復。
下圖是操作流程演示圖
③ PHP 字元串關鍵字匹配
只要內容中有關鍵字就替換成超鏈接
functionTextHandle($source,Array$texts){
/**
*@sourceString需要處理的源字元串
*@textsArray需要替換的所有關鍵字
*
*/
foreach($textsAS$text){
$source=str_replace($text,"<ahref=''>".$text."</a>",$source);
}
return$source;
}
$source="你好,我是一個帥哥";
echoTextHandle($source,['你好','帥哥']);//將[你好][帥哥]替換掉.
④ PHP標題如何替換關鍵字
<?phpecho str_str_replace(" "," -","測試空格 替換成-");?>
⑤ php preg_replace 中文關鍵字替換經常出現亂碼怎麼辦
header("Content-Type:text/html;charset=UTF-8");
$str="這是一段中文字元串";
$str="ThisisaChinesestring";
functionstr_replace_cn($str,$start,$length){
if(preg_match("/[x7f-xff]/",$str)){
if(is_utf8($str)){
returnsubstr_replace($str,'**',$start*3,$enlengthd*3);
}else{
returnsubstr_replace($str,'**',$start*2,$enlengthd*2);
}
}else{
returnsubstr_replace($str,'**',$start,$enlengthd);
}
}
functionis_utf8($word){
if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word)==true||preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word)==true||preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word)==true){
returntrue;
}else{
returnfalse;
}
}
echostr_replace_cn($str,3,1);
?>
⑥ php關鍵詞替換,現在一個變數里可能會出現關鍵詞,也可能不出現
$a = array('痤瘡','暗瘡','兒童');
$b = array('**','**','**');
$c= '青春痘是青春痘是美容皮膚科的最常見的病種之一,又稱之為「痤瘡」、「暗瘡」、「粉刺」,是發生在毛囊皮脂腺的慢性皮膚病,除兒童外,人群中約有80%~90%的人患本病或曾經患過本病(包括輕症在內)。青春期時,體內的荷爾蒙會刺激毛發生長,促進皮脂腺分泌更多油脂,毛發和皮脂腺因此堆積許多物質,使油脂和細菌附著,引發皮膚紅腫的反應。多發於面部、胸口、雙上臂、背部等等,青春痘好發於青少年,但也不 完全受年齡階段 的限制,從兒童到成人,幾乎所有年齡段的人都可以發病';
$d = str_replace($a,$b,$c);
echo $d;
⑦ php 數據里重復的關鍵字只替換第一個
這種系統函數滿足不了要求就自己寫個函數唄,
下面是我自己寫的:
function my_str_replace($arr_one,$arr_two,$str)
{
$num=count($arr_one);
for ($i=0;$i<$num;$i++){
if($arr_one[$i]){
$arr_tmp=explode($arr_one[$i],$str);
$num_tmp=count($arr_tmp);
if($num_tmp>1){
for ($j=0;$j<$num_tmp;$j++){
if($j==1){
$str_tmp=$arr_tmp[0].$arr_two[$i].$arr_tmp[1];
}else if($j>1){
$str_tmp.=$arr_one[$i].$arr_tmp[$j];
}
}
$str = $str_tmp;
}else{
$str=str_replace($arr_one[$i],$arr_two[$i],$str);
}
}
}
return $str;
}
把系統函數替換成上面這個就好了。
my_str_replace($nannv,$sspprx,$page_title);
⑧ php中批量替換多關鍵詞方法!
你的方法沒有問題,其實你只要改變一下思路就可以了,不用把數據寫入資料庫。
而是在輸出時像轉換UBB一樣把關鍵字加上A標簽。具體的方法你可以下載一份Wordpress的插件《SampleTags》來看看。
每次去修改數據中的標簽其實很痛苦不是嗎?數據永遠是原始數據最有價值,加工過的數據就讓它在視圖層通過修改器來完成吧。
⑨ 關鍵詞鏈接替換問題php
降序)
*/
function _sortDesc($a, $b) {
return (strlen($a[0]) < strlen($b[0])) ? 1 : -1;
}
$linkDefs = array(
'茶葉,111.htm',
'中國茶葉大觀,222.htm',
);
$linkMap = array();
foreach($linkDefs as $row) {
$linkMap[] = explode(',', $row);
}
$str = '
這兒是茶葉的鏈接。<br />
這兒是中國茶葉大觀的鏈接。<br />
這兒是<a href="111.html">茶葉</a>的現有鏈接。<br />
這兒是<a href="222.html">中國茶葉大觀</a>的現有鏈接。<br />
';
//把原有的鏈接替換成文字
foreach($linkMap as $row) {
$str = preg_replace('/(<a.*?>\s*)('.$row[0].')(\s*<\/a>)/sui', '$', $str);
}
//關鍵字從長至短排序
usort($linkMap, '_sortDesc');
//var_mp($linkMap);
$tmpKwds = array(); //存放暫時被替換的子關鍵字
foreach($linkMap as $i=>$row) {
list($kwd, $url) = $row;
for($j=$i+1; $j<count($linkMap); $j++) {
$subKwd = $linkMap[$j][0];
//如果包含其他關鍵字,暫時替換成其他字元串,如 茶葉 變成
if(strpos($kwd, $subKwd) !== false) {
$tmpKwd = '';
$kwd = str_replace($subKwd, $tmpKwd, $kwd);
$tmpKwds[$tmpKwd] = $subKwd;
}
}
//把文字替換成鏈接
$str = preg_replace('/('.$row[0].')/sui', '<a href="'.$row[1].'">'.$kwd.'</a>', $str, 5); // 最多替換5次
}
//把代替子關鍵字的字元串替換回來
foreach($tmpKwds as $tmp=>$kwd) {
$str = str_replace($tmp, $kwd, $str);
}
echo $str;
?>
以上程序輸出:
這兒是<a href="111.htm">茶葉</a>的鏈接。<br />
這兒是<a href="222.htm">中國茶葉大觀</a>的鏈接。<br />
這兒是<a href="111.htm">茶葉</a>的現有鏈接。<br />
這兒是<a href="222.htm">中國茶葉大觀</a>的現有鏈接。<br />
⑩ php 同義詞互換 偽原創
預處理我就跳過了,其實主要是用到str_replace(find, replace, str);
<?php
$toWords=array("懇求","悲悼","悲痛","悲傷","順序","受餓","靠攏");
$fromWords=array("哀求","哀傷","哀思","哀痛","挨次","挨餓","挨近");
$str="我哀傷地哀求她,她只是哀痛地哀思,挨次把我們挨餓的事情一一說來,我覺得死神正在挨近...";
echo$str."<br/> ";
$str1=str_replace($fromWords,$toWords,$str);
echo$str1;
?>