fork(1) download
  1. <?php
  2. $text= <<<HERETEXT
  3. [url=http://g...content-available-to-author-only...e.ru]Сайт гугл[/url]
  4. [url=http://g...content-available-to-author-only...e.ru][/url]
  5. HERETEXT;
  6.  
  7. $re = <<<HEREREGEX
  8. \[url=
  9. (?(?=[^\]]*\]\[\/url\]) # если где-то справа пустой текст
  10.   ([^\]]*)\]\[\/url\] | # ТО помещаем в первую группу адрес
  11.   ([^\]]*)\](.*?)\[\/url\] # ИНАЧЕ во вторую адрес, в третью текст
  12. )
  13.  
  14. HEREREGEX;
  15.  
  16. echo preg_replace( "/$re/sux", '<a href="$1$2" target="_blank">$1$3</a>', $text );
Success #stdin #stdout 0.01s 20520KB
stdin
Standard input is empty
stdout
<a href="http://g...content-available-to-author-only...e.ru" target="_blank">Сайт гугл</a>
<a href="http://g...content-available-to-author-only...e.ru" target="_blank">http://g...content-available-to-author-only...e.ru</a>