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

时间:2013-07-19 21:40:55

标签: php html tags

我已经处理了一段时间了,我无法弄清楚如何在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("\n", $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 ";

我该怎么做? 请注意我做不到

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

因为我从$ string获取$ insert1和$ insert2进行修改。我需要把它放回原处。 谢谢

4 个答案:

答案 0 :(得分:1)

这很容易做到:

$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 ";

当字符串用双引号括起来时,你可以从字符串内部回显一个变量。这不适用于单引号。

编辑:这可能是您正在寻找的内容:

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

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

答案 1 :(得分:0)

在php中,您可以使用“。”连接字符串。之前和之后,例如:

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

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

echo $concat; 

答案 2 :(得分:0)

这里有类似的方法。这允许填充更大的区域

$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++;
       }
    }
}

解析你的内容行如下:

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

这是未经测试的,因此可能会有一些错误。

答案 3 :(得分:0)

试试这个,

我在每个预览内容之前添加div标签。您还可以使用$ matches [1]

根据需要修改内容
$string_new = preg_replace_callback(
   '#<pre>(.*?)</pre>#',
    function ($matches) {
        return "<div>".$matches[0]."</div>";
    },
    $string
);

echo $string_new;