- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:正規表現について)
正規表現について
このQ&Aのポイント
- PHP+MYSQLで掲示板のサイトを作成中の質問者です。投稿コメント中のURLをリンクに変換する方法や、長いURLの表示をカットする方法について教えてください。
- 質問者は正規表現について理解が不足しており、学習する時間がないため、具体的なコードの提示を希望しています。
- 質問者が実現したいことは、投稿コメント中のURLをリンクに変換することと、長いURLを指定文字数でカットすることです。どのように実装すれば良いか教えてください。
- みんなの回答 (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);
お礼
ご回答ありがとうございます。 完璧です!! 希望通りです!! 感謝感激です。 ありがとうございました。 (お礼が遅くなり申し訳ございませんでした。)