以下は、テキスト内の URL リンク アドレスを HTML コードに変換する例です。リスト 6.4 は、PHP 関数 preg_match_all() の使用例です。
コード6.4 本文中のリンクアドレスをHTMLに変換する
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?php </span></span></span></li> <li><span>//功能:将文本中的链接地址转成HTML </span></li> <li class="alt"><span>//输入:字符串 </span></li> <li><span>//输出:字符串 </span></li> <li class="alt"><span>function url2html($text) </span></li> <li><span>{ </span></li> <li class="alt"><span>//匹配一个URL,直到出现空白为止 </span></li> <li><span>preg_match_all("/http://?[^s]+/i"<br>, $text, $links); </span></li> <li class="alt"><span>//设置页面显示URL地址的长度 </span></li> <li> <span>$</span><span class="attribute">max_size</span><span> = </span><span class="attribute-value">40</span><span>; </span> </li> <li class="alt"><span>foreach($links[0] as $link_url) </span></li> <li><span>{ </span></li> <li class="alt"><span>//计算URL的长度。如果超过$max_size的设置,则缩短。 </span></li> <li> <span>$</span><span class="attribute">len</span><span> = </span><span class="attribute-value">strlen</span><span>($link_url); </span> </li> <li class="alt"> <span>if($len </span><span class="tag">></span><span> $max_size) </span> </li> <li><span>{ </span></li> <li class="alt"> <span>$</span><span class="attribute">link_text</span><span> = </span><span class="attribute-value">substr</span><span>($link_url, 0, $max_size)."..."; </span> </li> <li><span>} else { </span></li> <li class="alt"> <span>$</span><span class="attribute">link_text</span><span> = $link_url; </span> </li> <li><span>} </span></li> <li class="alt"><span>//生成HTML文字 </span></li> <li> <span>$</span><span class="attribute">text</span><span> = </span><span class="attribute-value">str_replace</span><span>($link_url,"<br></span><span class="tag"><span> </span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">'$link_url'</span><span class="tag">></span><span>$link_text</span><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span>",$text); </span></span> </li> <li class="alt"><span>} </span></li> <li><span>return $text; </span></li> <li class="alt"><span>} </span></li> <li><span>//运行实例 </span></li> <li class="alt"> <span>$</span><span class="attribute">str</span><span> = “这是一个包含多个URL链接地址的多行文字。<br>欢迎访问http://www.taoboor.com”; </span> </li> <li><span>print url2html($str); </span></li> <li class="alt"><span>/*输出结果 </span></li> <li> <span>这是一个包含多个URL链接地址的多行文字<br>。欢迎访问</span><span class="tag"><span> </span><span class="tag-name">a</span><span> </span><span class="attribute">href</span><span>=</span><span class="attribute-value">'http://www.taoboor.com'</span><span class="tag">></span><span> </span></span> </li> <li class="alt"> <span>http://www.taoboor.com</span><span class="tag"></span><span class="tag-name">a</span><span class="tag">></span><span> </span> </li> <li><span>*/ </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
上記のPHP関数preg_match_all()の使用例を通して、この関数の応用を十分に理解していただければ幸いです。