Solved

str_replace aray

Posted on 2008-10-13
4
221 Views
Last Modified: 2009-11-01
Hi Experts,

I will explain the code I am working on,,, and all help is much appreciated.

Here is an oversimplified version of the code I am working with:

$seed = "seed and here is base and here is original";
$perm = "seed|base|original"; //This is the replacement string
$params = explode('|', $perm);
//This is the output
$variant = str_replace($params, "<b>{".$perm."}</b>", $seed);
echo $variant;


If you run the code I supplied,,,, You will notice that I am using $seed as a string that I am searching through in order to find any variation of the matching occurrences from $perm.

In essence I have to split $perm which I do in the$ params,, then find a match to any of the values in the $params array and replace those values with the $perm again.

In the way I am doing it now,,, the result turns out like this:
{seed|{seed|base|{seed|base|original}}|{seed|base|original}} and here is {seed|base|{seed|base|original}} and here is {seed|base|original}

What I need for the result is this:
{seed|base|original} and here is {seed|base|original} and here is {seed|base|original}

I do not have the option to manipulate the order in which various strings appear in the $seed string nor in $perm.

All help with this is greatly appreciated :)

Thank you.
0
Comment
Question by:deliriumxx
  • 2
4 Comments
 
LVL 6

Accepted Solution

by:
hampus_b earned 63 total points
Comment Utility
Replace in two steps:
<?
 

$seed = "seed and here is base and here is original";

$search = array("seed","base","original");

$replacetemp = "{TEMP}";

$replace = array("seed","base","original");

$params = explode('|', $perm);
 
 

$variant = str_replace($search, $replacetemp, $seed);

$variant = str_replace($replacetemp, "<b>{".join("|",$replace)."}</b>", $variant);

echo "<br>";

echo $variant;

?>

Open in new window

0
 
LVL 12

Expert Comment

by:jet-black
Comment Utility
You can try with preg_replace:

<?php

$seed = "seed and here is base and here is original";

$perm = "seed|base|original"; //This is the replacement string
 

//This is the output

$variant = preg_replace("/$perm/", "<b>{$perm}</b>", $seed);

echo $variant;

?>

Open in new window

0
 
LVL 12

Assisted Solution

by:jet-black
jet-black earned 62 total points
Comment Utility

<?php

$seed = "seed and here is base and here is original";

$perm = "seed|base|original"; //This is the replacement string

 

//This is the output

$variant = preg_replace("/$perm/", "<b>{{$perm}}</b>", $seed);

echo $variant;

?>

Open in new window

0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
These days socially coordinated efforts have turned into a critical requirement for enterprises.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now