如何在php字符串中将文本插入html标签?

i have been dealing with this for awhile and i could not figure out how to do the following in PHP:

$string = "this is test <pre>somrthing in <p>pharagraph</p></pre> dont know tell me <pre>value33 kooo ok</pre> this is php regress <pre>teeth value</pre> ok how"; 

function get_innercode($string) {
preg_match_all("#<pre>(.*?)</pre>#", $string, $foo); 
echo implode("
", $foo[1]); 
}
    $insert1=get_innercode($string);



    $insert2=" 2 place me in the pre tag"; // you can ignore this

    $string="this is test  <pre> WHERE $insert1 SHOULD BE</pre> dont know tell me  <pre>WHERE $insert2 SHOULD BE</pre> ok how ";

how can i do this? Please note i cannot do

$string="some text here <pre> WHERE $insert1 SHOULD BE</pre> some more text here <pre>WHERE $insert2 SHOULD BE</pre> ok how";

because i am getting $insert1 and $insert2 from $string to modify. i need to place it back in there where they come from. thank you

It's pretty easy to do:

$insert1 =" 1 place me in the pre tag";
$insert2 =" 2 place me in the pre tag";

$string = "some text here <pre>{$insert1}</pre> some more text here <pre>{$insert2}</pre> and may be some more text or ";

You can echo a variable from inside a string when it's wrapped around double quotes. This does not work with single quotes.

Edit: This might be what you are looking for then:

$string = "This my <code>awesome</code> code";

$string = preg_replace('/<code>(.*?)<\/code>/', '<pre>$1</pre>', $string);

In php you can concatenate strings with a "." before and after, example:

$var1 = "hello";
$var2 = "What's up";

$concat = "Hey, ".$var1." ,".$var2."<br>";

echo $concat; 

Similar methodology here. This allows for larger areas to be filled

$insert[0] = "Some Text";
$insert[1] = "Some More Text";

function Parser($content){
$i = 0;
    while (preg_match_all('`\<pre\>(.*?)\</pre\>`', $content, $matches)) {
       foreach ($matches[0] as $key => $match) { 
         //$innertext = $matches[1][$key]; //replace with your preferred filler
         $innertext = $insert[$i]; //such as this
         $replacement = '<pre>' . trim($innertext) . '</pre>';
         $content = str_replace($match, $replacement, $content); 
         $i++;
       }
    }
}

Parse your line(s) of content like so:

Parser("this is test <pre> WHERE $insert1 SHOULD BE</pre> dont know tell me  <pre>WHERE $insert2 SHOULD BE</pre> ok how");

This is untested so may have a couple of bugs in it.

Try this,

I am adding div tag before each pre content. You can also modify content as needed by using $matches[1]

$string_new = preg_replace_callback(
   '#<pre>(.*?)</pre>#',
    function ($matches) {
        return "<div>".$matches[0]."</div>";
    },
    $string
);

echo $string_new;