<?php

$change = array(
    'google' => 'www.google.com',
    'facebook' => 'www.facebook.com',
);

$text = "
    <h1>Search on google for facebook</h1>
    <p>Search on google for facebook</p>
";

$sentence = preg_replace_callback('~(<p\b[^>]*>)(.*?)(</p>)~s', function($m) use ($change) {
    	return $m[1] . preg_replace(
    		  array_map(function ($x) { return '@(?<=\W|^)('.preg_quote($x, "@").')(?=\W|$)@i'; }, array_keys($change)),
    		  array_map(function ($y) { return '<a href="'. $y .'">$1</a>'; }, array_values($change)),
    		  $m[2]). $m[3]; }
, $text);

echo $sentence;