Pompiuses
06-26-2002, 09:09 AM
I have a string which I want to search through for a given expression. If I find this expression I want to insert a new string behind it. How do I do this?
|
||||
Insert a string into a stringPompiuses 06-26-2002, 09:09 AM I have a string which I want to search through for a given expression. If I find this expression I want to insert a new string behind it. How do I do this? Pompiuses 06-26-2002, 09:54 AM To clarify things, here's what I have in mind: $string = "blah something blah"; $expression = "something"; $insertvalue = "else"; search through $string for $expression; if($string contains $expression) { insert $insertvalue into $string ->behind<- $expression; } firepages 06-26-2002, 10:14 AM well <? $string = "wombats are harmless"; $expression = "harmless"; $insertvalue = " (mostly)"; if(strstr($string,$expression)){ $string=str_replace($expression,$expression.$insertvalue,$string); } echo $string; ?> but so does <? echo str_replace($expression,$expression.$insertvalue,$string); ?> not sure if there is a reason you want to actually scan to see if the string exists in the firstplace? Pompiuses 06-26-2002, 10:31 AM ok I've altered my code a bit so it works with str_replace. Only problem now is that str_replace replaces all occurrences of the search string with the replacement string. Is there a way to get it to only replace the first occurence of the search string? Pompiuses 06-26-2002, 11:09 AM I tried this: preg_replace($expression,$expression.$insertvalue,$string,1); always get errormessage saying that delimiter must be alphanumeric??????????? firepages 06-26-2002, 01:37 PM well using regex should be a last resort... but this works.. <? $string = "wombats are harmless but not as harmless as llamas"; $expression = "harmless"; $insertvalue = " (mostly)"; $string=preg_replace("|$expression|",$expression.$insertvalue,$string,1); echo $string; ?> Flamerule 06-26-2002, 01:44 PM What you could do is... <? //----------------------------------------------- $string = "wombats are harmless"; $expression = "harmless"; $insertvalue = " (mostly)"; $pieces = explode($expression,$string); $mod_string = $pieces[0] . $expression . $insertvalue . $pieces [1]; $n = count($pieces); for($i = 2;$i < $n;$i++) { $mod_string .= $expression . $pieces[$i] } //----------------------------------------------- ?> ...should work... havn't tried though. |
| |||
EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum