Search and Replace Function...

I have an array like such:
$ReplaceTerms = array(
                  'dog' => 'cat',
                  'fire' => 'water'
            );

and I am looking to put together a function that I can pass the array and content to like such:

TransformInput($ReplaceTerms, $content)

The Function would then do a case insensitive search and replace on $content swapping out the text in the array. So 'dog' would become 'cat' and 'fire' would become 'water'

Make any sense?
interclubsAsked:
Who is Participating?
 
ddrudikConnect With a Mentor Commented:
str_replace has this functionality now that you might consider:
http://us3.php.net/manual/en/function.str-replace.php
From example 1:
// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);

Open in new window

0
 
ddrudikConnect With a Mentor Commented:

<?php
$ReplaceTerms = array(
                  'dog' => 'cat',
                  'fire' => 'water'
            );
$testarr=Array('foo','dog','fire','foo','dog');
function TransformInput($termsarray,$subjectarray){
  foreach($termsarray as $term=>$repl){
    foreach($subjectarray as $key=>$val){
	  if($val==$term){
	    $subjectarray[$key]=$repl;
	  }
	}
  }
  return $subjectarray;
}
$testarr=TransformInput($ReplaceTerms,$testarr);
echo '<pre>'.print_r($testarr,true);
?>

Open in new window

0
 
ddrudikCommented:
You might want to compare type as well, if so change:
        if($val==$term){
to:
        if($val===$term){
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
Ray PaseurConnect With a Mentor Commented:
If you are using a string for the "$content" variable, this might be what you want...

Best regards, ~Ray
function transform_input($replace_terms, $content) {
	foreach ($replace_terms as $original => $replacement) {
		$content = eregi_replace($original, $replacement, $content);
	}
return $content;
}
 
 
 
$content = "The quick brown fox jumped over the lazy dog.";
 
$replace_terms = array(
                  'dog' => 'cat',
                  'fire' => 'water'
            );
 
 
echo transform_input($replace_terms, $content);
 
?>

Open in new window

0
 
interclubsAuthor Commented:
I'm sorry, my bad, the 2nd piece pass to it ($subjectarray) won't be an array, it will be just straight text...
as in : $testarr='foo dog fire foo dog';
0
 
Ray PaseurCommented:
Then you should be OK with the function I posted above.  It tested out OK.  Best, ~Ray
0
 
ddrudikCommented:
Thanks for the question and the points.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.