$c = file_get_contents('file.txt'); preg_match_all('{(.*?)}',$c,$out); forech($out[1] as $k=> $o) { $a = explode('|',$o); $c = str_replace($out[0][$k],array_rand($a, 1),$c); }