Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在每个打开标签后插入_Php - Fatal编程技术网

Php 在每个打开标签后插入

Php 在每个打开标签后插入,php,Php,如何使用preg\u replace在包含HTML的字符串中的每个开头标记后插入给定字符串?例如,如果我有字符串: $str = 'sds<some_tag>ttt</some_tag>dfg<some_tag>vvv</some_tag>sdf'; $str='sdstttdfgvvsdf'; 我想插入,结果应该是: $str = 'sds<some_tag><b>ttt</some_tag>dfg<

如何使用
preg\u replace
在包含HTML的字符串中的每个开头标记后插入给定字符串?例如,如果我有字符串:

$str = 'sds<some_tag>ttt</some_tag>dfg<some_tag>vvv</some_tag>sdf';
$str='sdstttdfgvvsdf';
我想插入
,结果应该是:

$str = 'sds<some_tag><b>ttt</some_tag>dfg<some_tag><b>vvv</some_tag>sdf';
$str='sdstttdfgvvsdf';

我冒昧地为您添加了结束标记。如果这真的不是期望的行为,那么只发送每个数组的第一个成员,而不是数组本身

$str = 'sss<some_tag with="attributes">ttt</some_tag>dfg';
$str .= '<some_tag with="other[] attributes" and="still-more-attributes">';
$str .= 'vvv</some_tag>sdf';


function embolden($string, $some_tag)
{
    //make our patterns
    $patterns = array();
    $patterns[] = '/<'.$some_tag.'(.*)>/U';
    $patterns[] = '/<\/'.$some_tag.'(.*)>/U';

    // without the non-greedy `U` modifier, we'll clobber most of the string. 
    // We also use capturing groups to allow for replacing any attributes that
    // might otherwise get left behind. We can use multiple capturing groups in 
    // a regular expression and refer to them in the replacement strings as $n
    // with n starting at 1

    //make our replacements
    $replacements = array();
    $replacements[] = '<'.$some_tag.'$1><b>';
    $replacements[] = '</b></'.$some_tag.'$1>';

    return preg_replace($patterns, $replacements, $string);
}

//htmlentities for convienent browser viewing
$output = embolden($str, 'some_tag');
echo htmlentities($str);
echo '<br>';
echo htmlentities($output);
$str='ssstttdfg';
$str.='';
$str.='vvsdf';
函数壮胆($string,$some_标记)
{
//制作我们的图案
$patterns=array();
$patterns[]='/U';
$patterns[]='/U';
//如果没有非贪婪的'U'修饰符,我们将重击大部分字符串。
//我们还使用捕获组来替换任何
//否则可能会被甩在后面。我们可以在中使用多个捕获组
//一个正则表达式,并在替换字符串中将其引用为$n
//n从1开始
//替换
$replacements=array();
$replacements[]='';
$replacements[]='';
返回preg_replace($patterns,$replacements,$string);
}
//方便浏览器查看的htmlentities
$output=壮胆($str,'some_tag');
回音频率($str);
回声“
”; 回音频率(输出);
:你们做错了。这个问题仍然一目了然。我想他是在问如何在他定义的一些标记之间插入一个字符串(在他的例子中,在“”上方)(@PHPguru我尽量把你的问题重写一遍;如果不准确,请你自己澄清你的实际问题for@MichaelOzek先生这个问题还不清楚。大概他想要的也是a。我希望他不是真的想要nested的