【www.30064.com】只替换三遍或或只替换N次,php完结小说内容关键字扩展内链

str_replace只替换叁次代码

例1

   
我们都通晓,在PHP里Strtr,strreplace等函数都能够用来替换,可是她们每便替换的时候都以一体替换,举个例证:
“abcabbc”,那几个字符串假使选用上面的函数来把里面包车型大巴b替换掉,那么他会整整交换掉,不过就算您想只替换三个或多个如何是好呢?看下边包车型大巴消除办法:
    
那是个比较有一点点看头的难点,正好在此以前也做过类似的拍卖,当时本身是一向利用preg_replace实现的。

  
大家都掌握,在PHP里Strtr,strreplace等函数都足以用来替换,但是他们每一回替换的时候都以全体轮换,举个例证:
“abcabbc”,那么些字符串要是选择上面的函数来把个中的b替换掉,那么她会全部沟通掉,可是假使您想只替换八个或三个怎么办呢?看上面的缓慢解决办法:
    
那是个相比较有一点看头的标题,正好在此之前也做过类似的拍卖,当时本人是直接选择preg_replace实现的。

$str
=”中华夏族民共和国|111cn.net|111cn.net|111cn.net|jkldajfklda李好,美人,世界中华夏族民共和国神州炎黄

 代码如下

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject
[, int limit] )
     在 subject 中搜寻 pattern 形式的协作项并替换为
replacement。假诺钦定了 limit,则仅替换 limit 个卓殊,要是省略 limit
大概其值为 -1,则兼具的协作项都会被替换。
    
因为preg_replace的第八个参数可以达成替换次数的限定,所以那些主题材料如此管理很方便。不过在查看php.net上关于str_replace的函数探讨后,从中居然也足以挑出多少个有代表性的函数来。

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject
[, int limit] )
     在 subject 中查究 pattern 情势的协作项并替换为
replacement。借使内定了 limit,则仅替换 limit 个门道相当,借使省略 limit
也许其值为 -1,则具备的合作项都会被替换。
    
因为preg_replace的第几个参数能够完成替换次数的限量,所以那个主题材料如此管理很平价。可是在查看php.net上关于str_replace的函数议论后,从中居然也足以挑出多少个有代表性的函数来。

中夏族民共和国炎黄abc,dee”;
$str1=array(
  array(‘111cn.net’,’/phper.html’),
  array(‘中国’,’/phper.html’),
  array(‘李好’,’/phper.html’),
  array(‘dee’,’/phper.html’),
  array(‘abc’,’/phper.html’)
  );
//$temp = str_replace(‘111cn.net’,’前程似锦’,$str,$a);
    $count =0;
 foreach($str1 as $nkeys){    
   if(strpos($str,$nkeys[0]) ){
    if( $count <=1 ){
     $str=preg_replace(“/$nkeys[0]/”,”<a

/**
*对剧情中的关键词增添链接
*只管理第壹次面世的重大词,对已有链接的重大不会再加链接,扶助中国和俄罗丝文
*$content:string 原字符串
*$keyword:string  关键词
*$link:string,链接
*/
function yang_keyword_link($content,$keyword,$link){
    //排除图片中的关键词
    $content = preg_replace(
‘|(<img[^>]*?)(‘.$keyword.’)([^>]*?>)|U’,
‘$1%&&&&&%$3’, $content);
    $regEx =
‘/(?!((<.*?)|(<a.*?)))(‘.$keyword.’)(?!(([^<>]*?)>)|([^>]*?</a>))/si’;
    $url='<a href=”‘.$link.'”>’.$keyword.'</a>’;
    $content = preg_replace($regEx,$url,$content,1);
    //还原图形中的关键词
    $content=str_replace(‘%&&&&&%’,$keyword,$content);
    return $content;
}

str_replace_once
思路先是是找到待替换的首要词的职务,然后利用substr_replace函数直接沟通之。
<?php
function str_replace_once($needle, $replace, $haystack) {
// Looks for the first occurence of $needle in $haystack
// and replaces it with $replace.
$pos = strpos($haystack, $needle);
if ($pos === false) {
// Nothing found//迎欢转发但请证明出处Email:See7di@Gmail.com,Seven的部落格
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
?>

str_replace_once
思路先是是找到待替换的根本词的职分,然后利用substr_replace函数直接交换之。

href=].” target=_blank >”.$nkeys

例2

str_replace_limit
要么使用preg_replace,只可是它的参数更象preg_replace了,并且对少数特殊字符做了转义管理,通用性越来越好。
<?
function str_replace_limit($search, $replace, $subject, $limit=-1) {
// constructing mask(s)…
if (is_array($search)) {
foreach ($search as $k=>$v) {
$search[$k] = ‘`’ . preg_quote($search[$k],’`’) . ‘`’;
}//迎欢转发但请注脚出处Email:See7di@Gmail.com,Seven的部落格
}
else {
$search = ‘`’ . preg_【www.30064.com】只替换三遍或或只替换N次,php完结小说内容关键字扩展内链。quote($search,’`’) . ‘`’;
}
// replacement
return preg_replace($search, $replace, $subject, $limit);
}
?>

复制代码 代码如下:

[0].”</a>”,$str,1);     $count++;
     continue ;
    }
    
    
    
   }
    
  }
 echo $count,$str;
//preg_replace(【要替换的关键字】, 【替换为的首要性字】, 【原字符串】,
【替换次数

 代码如下

<?php 

】);
//方法二:

include_once(dirname(__file__).”/../db/DBViewSpot.php”
);

function str_replace_once($needle, $replace, $haystack) { 

function str_replace_once($needle, $replace, $haystack) {

class InnerLink{
    private static $spotUrlMap;
    /**
     * Generate view spots keywords link
     *
     * @param string $description
     * @param array $spotUrlMap
     * @return string
     */
    public static function genSpotLink($basePath, $description)
    {
        if(empty(InnerLink::$spotUrlMap)){
            InnerLink::$spotUrlMap = DBViewSpot::getSpotPare();
        }
        // 排除不法规数据
www.30064.com ,        if ( empty($description)) {
            return $description;
        }
        foreach
(InnerLink::$spotUrlMap AS $spotUrlPair){
            $replace = “<a target=’_blank’
href=’;”;
            // 描述里面唯有文字,未有图片,所以一旦注意 a 链接
            $tmp1 =
explode(“<a”,$description);
            $is_replaced=false;
            foreach ($tmp1 as $key=>$item){
                $tmp2 = explode(“</a>”,$item);
                if (sizeof($tmp2)>1) {
                    if
(substr($tmp2[0],0,1)!=”a” &&
substr($tmp2[0],0,1)!=”A”){
                        if ($is_replaced===false) {
                            $tmp2[1] =
InnerLink::str_replace_once($spotUrlPair[0],$replace,$tmp2[1],$is_replaced);
                        }
                        $tmp1[$key] = implode(“</a>”,$tmp2);
                    }
                }else {
                    if (is_string($item) && $is_replaced===false) {
                        $tmp1[$key] =
InnerLink::str_replace_once($spotUrlPair[0],$replace,$item,$is_replaced);
                    }
                }
            }
            $description = implode(“<a”,$tmp1);
        }
        return $description;
    }
    /**
     * replace key word for one time
     *
     * @param string $needle
     * @param string $replace
     * @param string $haystack
     * @param bool $is_replaced
     * @return string
     */
    private static function str_replace_once($needle, $replace,
$haystack,&$is_replaced) {
        $pos = strpos($haystack, $needle);
        if ($pos === false) {
            return $haystack;
        }
        $is_replaced=true;
        return substr_replace($haystack, $replace, $pos,
strlen($needle));
    }
}

// Looks for the first occurence of $needle in $haystack 

   $pos = strpos($haystack, $needle);

例3

// and replaces it with $replace. 

   if ($pos === false) {

其一是温馨最初学php时写的,以为有一点难题

$pos = strpos($haystack, $needle); 

      return $haystack;

 代码如下

if ($pos === false) { 

   }

    <?php 
    $keys =array( 
        
array(‘网页特效’,’/js_a/js.html’), 
        
array(‘seo’,’/seo/seo.html’), 
         array(‘php’,’/phper/php.html’), 
        
array(‘jsp’,’/jsp/jsp.html’), 
         array(‘asp’,’/asp/asp.html’), 
        
array(‘ps’,’/fw/photo.html’), 
        
array(‘photoshop’,’/fw/photo.html’), 
        
array(‘javascript’,’/js_a/js.html’), 
         array(‘.net’,’/net/net.html’), 
        
array(‘非主流’,’/fw/photo.html’), 
         array(‘网络’,’/mon/mon.html’), 
        
array(‘css’,’/cssdiv/css.html’), 
        
array(‘平面设计’,’/fw/photo.html’), 
         array(‘网站’,’/person/’), 
        
array(‘网页制作’,’/wy/yw.html’), 
        
array(‘追寻引擎’,’/seo/seo.html’), 
         array(‘优化’,’/seo/seo.html’), 
        
array(‘动画’,’/flash_a/flash.html’), 
        
array(‘数据库’,’/database/database.html’), 
         array(‘挣钱’,’/mon/mon.html’), 
        
array(‘运营’,’/mon/mon.html’) 
           
    ); 
         
    $str
=”今日是二零零六年三月30号,小编的网址出现的标题那对seo有为数相当的多的难题,seo正是搜求引擎优化了,从前学php好啊现在感到jsp好,css+div,网页,网页设计,网页制作,网页学习,网页教学,Photoshop,Flash,HTML,CSS,Dreamweaver,Fireworks,ASP,PHP,JSP,ASP.NET,网址建设,网址开辟,网页特效,平面设计,个人网址,网页素材”; 
    
    
    echo $str,”<br>”; 
    foreach($keys as $nkeys){ 
           //print_r($nkeys);echo”<br>”; 
           //foreach( $nkeys as $join) { 
           //echo($join),”<br>”; 
           if(strpos($str,$nkeys[0]) ){ 
                 $str =str_replace($nkeys[0],”<a
href=].” target=_blank
>”.$nkeys[0].”</a>”,$str);      
           } 
           //} 
    } 
         
       echo $str; 
    ?>

return $haystack; 

   return substr_replace($haystack, $replace, $pos, strlen($needle));

}

return substr_replace($haystack, $replace, $pos, strlen($needle)); 

?> 

str_replace_limit
抑或利用preg_replace,只但是它的参数更象preg_replace了,并且对有个别特殊字符做了转义管理,通用性更加好。

复制代码 代码如下:

<? 

function str_replace_limit($search, $replace, $subject, $limit=-1) { 

// constructing mask(s)… 

if (is_array($search)) { 

foreach ($search as $k=>$v) { 

$search[$k] = ‘`’ . preg_quote($search[$k],’`’) . ‘`’; 

}

else { 

$search = ‘`’ . preg_quote($search,’`’) . ‘`’; 

// replacement 

return preg_replace($search, $replace, $subject, $limit); 

?> 

你或然感兴趣的篇章:

  • php字符串替换函数substr_replace()用法实例
  • php使用str_replace完成输入框回车替换br的秘技
  • PHP的substr_replace将钦命两任务之间的字符替换为*号
  • php函数之子字符串替换
    str_replace
  • PHP中利用substr_replace将指定两职位之间的字符替换为*号
  • php
    preg_match_all结合str_replace替换内容中存有img
  • php str_replace的轮换漏洞
  • JSP中的字符替换函数 str_replace()
    实现!
  • php
    str_replace替换内定次数的不二等秘书籍详解

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图