fork download
  1. <?php
  2.  
  3. $change = array(
  4. 'google' => 'www.google.com',
  5. 'facebook' => 'www.facebook.com',
  6. );
  7.  
  8. $text = "
  9. <h1>Search on google for facebook</h1>
  10. <p>Search on google for facebook</p>
  11. ";
  12.  
  13. $sentence = preg_replace_callback('~(<p\b[^>]*>)(.*?)(</p>)~s', function($m) use ($change) {
  14. return $m[1] . preg_replace(
  15. array_map(function ($x) { return '@(?<=\W|^)('.preg_quote($x, "@").')(?=\W|$)@i'; }, array_keys($change)),
  16. array_map(function ($y) { return '<a href="'. $y .'">$1</a>'; }, array_values($change)),
  17. $m[2]). $m[3]; }
  18. , $text);
  19.  
  20. echo $sentence;
Success #stdin #stdout 0s 82944KB
stdin
Standard input is empty
stdout
    <h1>Search on google for facebook</h1>
    <p>Search on <a href="www.google.com">google</a> for <a href="www.facebook.com">facebook</a></p>