Log in

View Full Version : Using two functions on one echo?



likeskoolaid
09-03-2011, 10:46 PM
I have two functions, one turns un-href links into working href links.




<?php
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
?>


The other replaces an array of words into a different word.



<?php
$replace = array(
'Cat' => 'Dog',
);
?>



This is how you echo both separately, the problem I'm having and need help with is combining both functions into one echo so both fixes apply to a single variable ($content).




<?php echo str_replace_assoc($replace,$content); ?>

<?php echo preg_replace(a$reg_exUrl, '<a href="'.$url[0].'" target="_blank" class="outboundlink" rel="nofollow">'.$url[0].'</a>', $content); ?>

traq
09-04-2011, 12:06 AM
first off, $reg_exUrl and $replace are not functions; they are variables (that contain strings). The functions in question are str_replace_assoc() (which is a user-defined function; from the looks of it I'm not sure why you don't simply use str_replace()) and preg_replace() (http://us3.php.net/manual/en/function.preg-replace.php).

To apply both functions, simply save the output in a variable instead of using echo:
$content_1 = str_replace_assoc($replace, $content);
$content_2 = preg_replace($reg_exUrl, '<a href="'.$url[0].'" target="_blank" class="outboundlink" rel="nofollow">'.$url[0].'</a>', $content_1);
// although I don't know what $url[0] is or where it's coming from

echo $content_2;
you should avoid outputting anything (e.g., using echo or print) as long as possible, so you don't run into problems like this. complete all of your php processing first, and only echo it out at the end.