) HTML을 bbcode로 번역하는 기능이 작동하지 않습니다. HTML 대응 코드로 올바르게 변환되는 [spoiler] bbcode 태그를 작성했습니다.PHP : 동일 문자열이 함께 일치하지 않음 (
하지만 다시 BBCode는로를 설정하려고 할 때 그것을 겉으로는 동일한 문자열과 일치하지 않는 것 ...
천천히 어디에 문제가보고 조각으로 그것을 조각을 재건 한 후, 그것을 밝혀에만 내가
012,351,641에onclick="showSpoiler(this)"
를 추가 할 때 실패
#<div><input type="button" onclick="showSpoiler(this)"/><div>(.*)</div></div>#ig'
내가 더 (괄호까지를 좁혔다. 나는 [스포일러] 태그에서 생성되는이 \ (
HTML 코드처럼 그들을 탈출을 시도하다 :
이`$ (1)
하고에 대해 일치하는 문자열이
입니다 여기'#<div><input type="button" onclick="showSpoiler(this)"/><div>(.*)</div></div>#ig'
당신이 태어나 셨 변환 기능 정규식에서
<?php
//This function let convert BBcode to HTML
function bbcode_to_html($text)
{
$text = nl2br(htmlentities($text, ENT_QUOTES, 'UTF-8'));
$in = array(
'#\[b\](.*)\[/b\]#Usi',
'#\[i\](.*)\[/i\]#Usi',
'#\[u\](.*)\[/u\]#Usi',
'#\[s\](.*)\[/s\]#Usi',
'#\[img\](.*)\[/img\]#Usi',
'#\[url\]((ht|f)tps?\:\/\/(.*))\[/url\]#Usi',
'#\[url=((ht|f)tps?\:\/\/(.*))\](.*)\[/url\]#Usi',
'#\[left\](.*)\[/left\]#Usi',
'#\[center\](.*)\[/center\]#Usi',
'#\[right\](.*)\[/right\]#Usi',
'#\[spoiler\](.*)\[/spoiler\]#Usi',
'#\[fuck\](.*)\[/fuck\]#Usi'
);
$out = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<span style="text-decoration:underline;">$1</span>',
'<span style="text-decoration:line-through;">$1</span>',
'<img src="$1" alt="Image" />',
'<a href="$1">$1</a>',
'<a href="$1">$4</a>',
'<div style="text-align:left;">$1</div>',
'<div style="text-align:center;">$1</div>',
'<div style="text-align:right;">$1</div>',
'<div><input type="button" onclick="showSpoiler(this)" value="Show/Hide" /><div class="inner" style="display:none;">$1</div></div>',
'<div><input type="button" onclick="showSpoiler(this)"/><div>$1</div></div>'
);
$count = count($in)-1;
for($i=0;$i<=$count;$i++)
{
$text = preg_replace($in[$i],$out[$i],$text);
}
return $text;
}
//This function let convert HTML to BBcode
function html_to_bbcode($text)
{
$text = str_replace('<br />','',$text);
$in = array(
'#<strong>(.*)</strong>#Usi',
'#<em>(.*)</em>#Usi',
'#<span style="text-decoration:underline;">(.*)</span>#Usi',
'#<span style="text-decoration:line-through;">(.*)</span>#Usi',
'#<img src="(.*)" alt="Image" />#Usi',
'#<a href="(.*)">(.*)</a>#Usi',
'#<div style="text-align:left;">(.*)</div>#Usi',
'#<div style="text-align:center;">(.*)</div>#Usi',
'#<div style="text-align:right;">(.*)</div>#Usi',
'#<div><input type="button" onclick="showSpoiler(this)" value="Show/Hide" /><div class="inner" style="display:none;">(.*)</div></div>#Ui',
'#<div><input type="button" onclick="showSpoiler(this)"/><div>(.*)</div></div>#ig'
);
$out = array(
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[s]$1[/s]',
'[img]$1[/img]',
'[url=$1]$2[/url]',
'[left]$1[/left]',
'[center]$1[/center]',
'[right]$1[/right]',
'[spoiler]$1[/spoiler]',
'[fuck]$1[/fuck]'
);
$count = count($in)-1;
for($i=0;$i<=$count;$i++)
{
$text = preg_replace($in[$i],$out[$i],$text);
}
return $text;
}
?>
나는에 대한 참조가 '이'설정되지 않으므로 함수가 실행되고 있지 않은지 가정을 만들려고하고 있습니다. – Jonathan
이 기능은 작동합니다. [스포일러] 태그는 기능적입니다. 그것은 "게시물 편집"을 클릭하고 html을 bbcode로 변환해야 변환이 실패합니다. [대담] 및 [이탤릭체]는 모든 다른 사람들이 잘, 그냥 [스포일러] 일을하고 내가 브라켓 –
-1 있기 때문에 이것이 생각하기 때문에 현재의 형태로,이 질문은 "추측의 게임을 우리에게 요구하고있다 내 codez 무엇입니까 ". – goat