① 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;
?>