質問: 正規表現で自動リンク後、長いurl表示を丸めたい お世話になります。 php4で作った掲示板を運営しています。 過去ログを参考にし、以下の正規表現で投稿本文中のurlを自動リンクしています。 $text=ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","\\0",$text); 今の問題は、長いurlを貼られたときに折り返しされず掲示板のレイアウトが崩れることです。 そこで~間の表示部分だけ規定文字数で丸めたいのですが、なかなか良い方法が思いつきません。 どなたかお知恵を貸してください。 ちなみに応急処置として、親タグに style="word-break:break-all;" を入れています。 でもこれだとie以外は効果ないので・・・。
回答: 処理は遅くなりますが、 preg_split で一度分解して、 もう一度配列に対して、順に同じ表現で検索して 一致した行で、長さを測り 折り返して置き換えてはどうでしょうか?