menu
閉じる
  1. カスタム投稿タイプとタクソノミー、ターム追加スニペット
  2. CSSでグラデーションテキスト
  3. 【令和追加】date()関数を日本の元号に対応させる
  4. WordPressのヘッダーから余分なMETA情報や絵文字関連を削除
  5. WordPressのナビゲーションメニューに説明を使う
  6. Advanced Custom Fieldsの出力
  7. Really Simple CSV Importerプラグインでパーマ…
  8. Advanced Custom Fields : Repeater F…
  9. ログイン画面をカスタマイズ
  10. カテゴリをチェックした時に、並び順が変更にならないようにする
閉じる
閉じる
  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールド…
  2. 投稿ページが複数カテゴリに紐づく場合のパンくずリスト
  3. MW WP Formのフォームに投稿やカスタム投稿、タクソノミーを選択…
  4. jQueryプラグイン「VEGAS」にテキストを追加して背景の切り替え…
  5. 親ターム子ターム毎にまとめて記事一覧を表示する
  6. ビジュアルエディタにTinyMCEの機能を追加する覚書(プラグインなし…
  7. Really Simple CSV Importerプラグインでパーマ…
  8. Advanced Custom Fields PROの「オプションペー…
  9. 管理画面のカスタム投稿記事一覧ページでカスタムタクソノミーで絞り込み
  10. 【令和追加】date()関数を日本の元号に対応させる
閉じる

Mana Design Lab.

【PHP】テキストにURLが含まれていたらリンクに自動変換させる

簡易的なチャットシステムをPHPとajaxで作成する機会があって、チャットメッセージにURLが含まれていたら、その部分だけリンクに自動で変換するのに詰まったからメモ。

function genlink($text) {
    $pattern = '/((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+' .
               '|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?P<path>\/[\+~%\/.\w-_]*)?' .
               '\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/';
    return preg_replace_callback(
        $pattern,
        function ($matches) {
            return sprintf(
                '<a href="%1$s" target="_blank">' .
                 (!preg_match('/\.(jpg|gif|png)$/i', $matches['path']) ? '%1$s' : '<img src="%1$s" alt="" />') .
                '</a>',
                $matches[0]
            );
        },
        $text
    );
}

関数に引数を渡す。

$text = '「http://www.google.co.jp」はGoogleのURL。';
echo $text;

 

関連記事

  1. 【令和追加】date()関数を日本の元号に対応させる

  2. POST/GETを使った際にリロードによる2重送信を防止する

おすすめ記事

  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールドを含め他のページで表示する
  2. Really Simple CSV Importerプラグインでパーマリンクの末尾に付く「-2」をSQLで一括削除
  3. 【令和追加】date()関数を日本の元号に対応させる
  4. WordPressで複数の条件を組み合わせた検索フォーム
  5. ログイン画面をカスタマイズ

ピックアップ記事

  1. 他のページで設定したブロックの内容を表示したかった時の覚書。汎用性からショートコードにまとめ…
  2. 大量の記事をCSVで一気に流し込めるプラグイン「Really Simple CSV Importer…
  3. 未だに明治やら大正やら昭和やら平成やら日本の元号がちょくちょく利用されますが、素晴らしいdate()…

最新記事

  1. Gutenberg ブロックエディタに設定した内容をカスタムフィールドを含め他のページで表示する
  2. 投稿ページが複数カテゴリに紐づく場合のパンくずリスト
  3. MW WP Formのフォームに投稿やカスタム投稿、タクソノミーを選択項目として表示
ページ上部へ戻る