ホームページ  >  記事  >  バックエンド開発  >  記事にキーワードとリンクを追加する PHP メソッド

記事にキーワードとリンクを追加する PHP メソッド

WBOY
WBOYオリジナル
2016-07-25 09:11:031457ブラウズ
  1. $keywordArray = array(
  2. array('プロセス', 'http://www.01happy.com/linux-ps-view-process/')
  3. , array('デーモンプロセス', 'http: //www.01happy.com/linux-python-daemon/')
  4. );
コードをコピー

組み込み関数 usort を使用して 2 次元配列を並べ替えることができます。コードは次のとおりです。

  1. usort($keywordArray, function($a, $b) {
  2. $al = strlen($a[0]);
  3. $bl = strlen($b[0]);
  4. if ($ al == $bl)
  5. return 0;
  6. return ($al > $bl) ? -1 : 1;
  7. });
コードをコピー

すべてのHTMLタグを抽出

  1. preg_match_all('/]*>/', $content, $match);
  2. if (isset($match[0] )) {
  3. $htmlTagArray = $match[0];
  4. }
コードをコピーします

ここでの通常のルールは、 番号を表示する必要があるときはいつでも、 でラップされたすべてのコンテンツを抽出することであると考えています。コンテンツとしては、エスケープ文字 <> に置き換える必要があります。 で囲まれたすべてのコンテンツはタグとみなされます。実際、ブラウザもこれを行い、多くのオンライン テキスト エディタはこれらの文字を自動的にエスケープします。

コンテンツを分割して配列に保存します $noTagContentArray = preg_split('/?[a-zA-Z]+[^>]*>/', $content);

ここで使用する正規表現は、上記のHTMLタグを抽出するために使用した正規表現と同じです。

分割されたコンテンツ配列をループし、キーワードリンクを置き換えます ここでの処理方法は、まずキーワードを md5 値に置き換え、次に md5 値をリンク付きキーワードに置き換えます。この処理を行う理由は、キーワード間の包含の問題を解決するためです。また、筆者はループ置換を不要にするために、分割されたコンテンツ配列を文字列に内分解することを検討したことがありますが、内分解後の文字列が接続点でキーワードを形成することが懸念されたため、実行しませんでした。それをこうして。

抽出されたHTMLタグと処理されたコンテンツを結合します この手順は比較的簡単で、1 つずつ接続するだけで完了です。なお、htmlタグの配列の長さは、分割されたコンテンツの配列の長さよりも1小さい長さになるため、タグを取得する際はissetで判断してください。 上記の内容は何度もテストされており、問題はありません。ご不明な点がございましたら、このサイトの QQ グループ 161228069 にご連絡ください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPのnull値判定次の記事:PHPのnull値判定