• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現について)

正規表現について

このQ&Aのポイント
  • PHP+MYSQLで掲示板のサイトを作成中の質問者です。投稿コメント中のURLをリンクに変換する方法や、長いURLの表示をカットする方法について教えてください。
  • 質問者は正規表現について理解が不足しており、学習する時間がないため、具体的なコードの提示を希望しています。
  • 質問者が実現したいことは、投稿コメント中のURLをリンクに変換することと、長いURLを指定文字数でカットすることです。どのように実装すれば良いか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tandes
  • ベストアンサー率58% (10/17)
回答No.1

たぶんpreg_系のコマンドを使わないと難しいと思います。 (1)preg_replace_callbackでやれば正規表現部分をほとんど変えないで 出来ます。 function replacer($matches){ $size=30; // カットする文字数 $a=$matches[0]; $b=$matches[0]; if(strlen($b)>$size){ $b=substr($b, 0, $size)."..."; } return "<a href=\"{$a}\">{$b}</a>"; } $str = preg_replace_callback("@(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:\@&=_-]+)@", "replacer", $aStr); print $str; (2)微妙に要望と違いますが、$strからリンク部分だけを抜き出すだけなら… preg_match_all("@<a href.+</a>@", $str, $matches); print_r($matches);

参考URL:
http://jp.php.net/manual/ja/function.preg-replace-callback.php,http://jp.php.net/manual/ja/function.preg-match-all.php
xyz_1990
質問者

お礼

ご回答ありがとうございます。 完璧です!! 希望通りです!! 感謝感激です。 ありがとうございました。 (お礼が遅くなり申し訳ございませんでした。)

関連するQ&A