Выделение всех URL в документе

Выделение всех URL в документе

Выделение всех URL в документе

Этот скриптик я использовал в первых выпусках рассылки на сервере www.codenet.ru.

Написан он на PHP и делает все ссылки «кликабельными».

  1. <?
  2. $fname="file.txt";
  3.  
  4. function parseurl($messagetext) {
  5. // the auto parser - adds [url] tags around neccessary things
  6.  
  7. // catch those with a space or new line before
  8. $messagetext=eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1<a href='http://\\2'>http://\\2</a>",$messagetext);
  9. $messagetext=eregi_replace("([ \r\n])https://([^ ,\r\n]*)","\\1<a href='https://\\2'>https://\\2</a>",$messagetext);
  10. $messagetext=eregi_replace("([ \r\n])ftp://([^ ,\r\n]*)","\\1<a href='ftp://\\2'>ftp://\\2</a>",$messagetext);
  11. $messagetext=eregi_replace("([ \r\n])www\\.([^ ,\r\n]*)","\\1<a href='http://www.\\2'>http://www.\\2</a>",$messagetext);
  12.  
  13. // catch those right at the begninning
  14. $messagetext=eregi_replace("^http://([^ ,\r\n]*)","<a href='http://\\1'>http://\\1</a>",$messagetext);
  15. $messagetext=eregi_replace("^https://([^ ,\r\n]*)","<a href='https://\\1'>https://\\1</a>",$messagetext);
  16. $messagetext=eregi_replace("^ftp://([^ ,\r\n]*)","<a href='ftp://\\1'>ftp://\\1</a>",$messagetext);
  17. $messagetext=eregi_replace("^www\\.([^ ,\r\n]*)","<a href='http://www.\\1'>http://www.\\1</a>",$messagetext);
  18.  
  19. return $messagetext;
  20. }
  21.  
  22. $d=file($fname);
  23. $fw=fopen($fname.".htm","wt");
  24. for ($i=0;$i<count($d);$i++) {
  25. $str=parseurl($d[$i]);
  26. $str=str_replace("\r","",$str);
  27. fputs($fw,$str);
  28. }
  29. fclose($fw);
  30. ?>

Download this code: parseurl.phps

Комментарии