Php 预更换-计数 $pattern=数组(“/\[spoiler\]/”,“/\[.spoiler\]/”; $replace=数组(“Pokaż/ukryj”,”);
要用PHP解决这个问题,可以使用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
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;
}