/**
*コンテンツ内のキーワードへのリンクを追加します
*初めて表示されるキーワードのみを処理します。既にリンクされているキーワードは再度リンクされません。
*$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=>$item){
$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;
?>
http://www.bkjia.com/PHPjc/633156.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633156.html技術記事クラスメートのほとんどのウェブサイトにはこの機能があると思います。以下のエディターは、上から順に、3つの機能をまとめています。
。
|
|