ホームページ  >  記事  >  バックエンド開発  >  PHP は記事コンテンツのキーワードへの内部リンクの追加を実装します_PHP チュートリアル

PHP は記事コンテンツのキーワードへの内部リンクの追加を実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:43:411708ブラウズ

私のクラスメートのほとんどの Web サイトには、Web サイトの記事に内部リンクを自動的に追加するこの機能があると思います。以下のエディターは、上から順に、最適な方法が上にある 3 つの機能をまとめています。


例 1

コードは次のとおりです コードをコピー

/**
*コンテンツ内のキーワードへのリンクを追加します
*初めて表示されるキーワードのみを処理します。既にリンクされているキーワードは再度リンクされません。
*$content:string 元の文字列
*$keyword:string キーワード
*$link: 文字列、リンク
*/
関数 yang_keyword_link($content,$keyword,$link){
//写真内のキーワードを除外します
$content = preg_replace( '|(]*?)('.$keyword.')([^>]*?>)|U', '$1%&&&&%$3', $コンテンツ); $regEx = '/(?!((<.*?)|(]*?) >)|([^>]*?))/si'; $url=''.$keyword.''; $content = preg_replace($regEx,$url,$content,1); //画像内のキーワードを復元します
$content=str_replace('%&&&&%',$keyword,$content); $content を返します
}




例 2

コードは次のとおりです コードをコピー


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

クラスインナーリンク{
プライベート静的 $spotUrlMap;
/**
     * ビュースポットキーワードリンクを生成
     *
     * @param string $description
     * @param 配列 $spotUrlMap
     * @戻り文字列
    */
パブリック静的関数 genSpotLink($basePath, $description)
{
If(empty(InnerLink::$spotUrlMap)){
InnerLink::$spotUrlMap = DBViewSpot::getSpotPare();
}
//不規則なデータを除外する
if ( empty($description)) {
return $description;
}
foreach (InnerLink::$spotUrlMap AS $spotUrlPair){
$replace = " ".$spotUrlPair[0]."";
// 説明はテキストのみで画像はありませんので、A リンクに注目してください
$tmp1 =explode(" $is_replaced=false;
foreach ($tmp1 as $key=>$ite​​m){
$tmp2 =explode("",$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("",$tmp2);
}
}else {
If (is_string($item) && $is_replaced===false) {
$tmp1[$key] = InnerLink::str_replace_once($spotUrlPair[0],$replace,$item,$is_replaced);
}
}
}
$description = implode(" }
return $description;
}
/**
     * キーワードを一度置き換えます
     *
     * @param string $needle
     * @param string $replace
     * @param 文字列 $haystack
     * @param bool $is_replaced
     * @戻り文字列
    */
プライベート静的関数 str_replace_once($needle, $replace, $haystack,&$is_replaced) {
        $pos = strpos($haystack, $needle);
        if ($pos === false) {
            $haystack を返します;
        }
        $is_replaced=true;
        return substr_replace($haystack, $replace, $pos, strlen($needle));
    }
}

例 3

これは私が初めて php を学んだときに書いたもので、何か間違っていると感じました

コードは次のとおりです コードをコピー
$keys =array(
array('Web ページの特殊効果','/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/database.html')、
array('お金を稼ぐ','/mon/mon.html'),
array('オペレーション','/mon/mon.html')
                                                );                                             $str = "今日は 2010 年 5 月 30 日です。私の Web サイトに問題があります。これには SEO にとって多くの問題があります。SEO とは検索エンジンの最適化です。私は以前は php をよく勉強していました。今では、JSP、CSS+DIV、Web が良いと思いますページ、Web デザイン、Web 制作、Web 学習、Web 教育、Photoshop、Flash、HTML、CSS、Dreamweaver、Fireworks、ASP、PHP、JSP、ASP.NET、Web サイト構築、Web サイト開発、Web 特殊効果、グラフィック デザイン、パーソナルウェブサイト、ウェブページの素材";


echo $str,"
"; foreach($keys as $nkeys){
//print_r($nkeys);エコー"
"; //foreach( $nkeys as $join) {
//echo($join),"
"; If(strpos($str,$nkeys[0]) ){
$str =str_replace($nkeys[0],"".$nkeys[0]."< ;/a>",$str);                                                                                        //} }
                                            エコー $str; ?>





www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633156.html技術記事クラスメートのほとんどのウェブサイトにはこの機能があると思います。以下のエディターは、上から順に、3つの機能をまとめています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。