0

I am looking for a quick way to replace text in a string that is between two tags.

The string contains <!-- Model # Start -->  <!-- Model # End -->  Tags.  

I just want to replace what is between the tags, I believe preg_replace() will do this but I am not sure how to make it work.

2

2 Answers 2

3

To use preg_replace, pass in the original string and a regular expression - the matching result will be returned. There is not much more to say about that method as you need to understand regular expressions to use it.

Here is a programatic solution, possibly not the most efficient code, but gives you an indication of what it is doing.

$tagOne = "[";
$tagTwo = "]";
$replacement = "Greg";

$text = "Hello, my name is [NAME]";

$startTagPos = strrpos($text, $tagOne);
$endTagPos = strrpos($text, $tagTwo);
$tagLength = $endTagPos - $startTagPos + 1;

$text = substr_replace($text, $replacement, $startTagPos, $tagLength);

echo $text;

Outputs: Hello, my name is Greg.

Sign up to request clarification or add additional context in comments.

1 Comment

This will only replace the last instance of [NAME], i.e., [NAME] [NAME] will output [NAME] Greg
0
$tagOne = "[";
$tagTwo = "]";
$replacement = "Greg";

$text = "Hello, my name is [NAME] endie ho [NAME] \n [NAME]";

$textLength = strlen($text);


for ($i; $i< $textLength; $i++) {

  $startTagPos = strrpos($text, $tagOne);
  $endTagPos = strrpos($text, $tagTwo);
  $tagLength = $endTagPos - $startTagPos + 1;
  if ($startTagPos<>0) $text = substr_replace($text, $replacement, $startTagPos, $tagLength); 
}

echo $text;

Please note, the if statement that checks if there is a tag pos left, otherwise, for all the textlength - # of tags, your start position of 0, in this case 'H', will get gregs :)

The above outputs

Hello, my name is Greg endie ho Greg Greg

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.