Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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 预更换-计数 $pattern=数组(“/\[spoiler\]/”,“/\[.spoiler\]/”; $replace=数组(“Pokaż/ukryj”,”);_Php_Count_Preg Replace - Fatal编程技术网

Php 预更换-计数 $pattern=数组(“/\[spoiler\]/”,“/\[.spoiler\]/”; $replace=数组(“Pokaż/ukryj”,”);

Php 预更换-计数 $pattern=数组(“/\[spoiler\]/”,“/\[.spoiler\]/”; $replace=数组(“Pokaż/ukryj”,”);,php,count,preg-replace,Php,Count,Preg Replace,要用PHP解决这个问题,可以使用preg\u replace\u callback。请参见此简化示例: $pattern = array ('/\[spoiler\]/', "/\[.spoiler\]/"); $replace = array ("<button title=\"Click to show/hide content\" type=\"button\" onclick=\"if(document.getElementById('spoiler') .style.dis

要用PHP解决这个问题,可以使用
preg\u replace\u callback
。请参见此简化示例:

 $pattern = array ('/\[spoiler\]/', "/\[.spoiler\]/");

 $replace = array ("<button title=\"Click to show/hide content\" type=\"button\" onclick=\"if(document.getElementById('spoiler') .style.display=='none') {document.getElementById('spoiler') .style.display=''}else{document.getElementById('spoiler') .style.display='none'}\">Pokaż/ukryj</button><div id=\"spoiler\" style=\"display: none;\">", "</div>");

 <?php echo preg_replace($pattern, $replace, '[spoiler]awdawdawd[/spoiler] ');
$counter=1;
$replaced=preg\u replace\u回调(“/\[spoiler\]/”、“replace\u with\u count”、“[spoiler]awdawdawd另一个[spoiler]”);
替换了$echo;
#将显示:显示1 awdawdawd另一个显示2
/**
*用递增的数字替换所有匹配项
*
*@param数组$matches
*@返回字符串
*/
函数将_替换为_计数($matches){
全球美元柜台;
$result=“Show{$counter}”;
$counter++;
返回$result;
}

document.getElementById('spoiler')只需替换为
this.nextSibling
,您就不需要id了……您能更具体地说明“计算id的数量”吗?还有什么是“sporter1”、“sporter2”等?最好使用
函数替换_为_计数($matches)使用(&$counter){
而不是全局变量。
$counter  = 1;
$replaced = preg_replace_callback('/\[spoiler\]/', 'replace_with_count', '[spoiler]awdawdawd another[spoiler]');
echo $replaced;
# will show: <button id='spoiler1'>Show 1</button>awdawdawd another<button id='spoiler2'>Show 2</button>

/**
 * Replace all occurrence with an incrementing number
 *
 * @param array $matches
 * @return string
 */
function replace_with_count($matches) {
    global $counter;
    $result = "<button id='spoiler{$counter}'>Show {$counter}</button>";
    $counter++;

    return $result;
}