프로필의 개인 메시지에서 bb 코드를 사용하는 코드를 찾았지만 메시지를 변경하기 위해 설정으로 돌아 가면 bb 코드 대신 html 태그가 반향됩니다.반향시 반전 bb 코드
BB-번호 :
if(isset($_POST['submit'])) {
if(isset($_POST['bio_message'])){
//BBCode Parser function
function showBBcodes($text) {
// BBcode array
$find = array(
'~\[b\](.*?)\[/b\]~s',
'~\[i\](.*?)\[/i\]~s',
'~\[u\](.*?)\[/u\]~s',
'~\[quote\](.*?)\[/quote\]~s',
'~\[url\]((?:ftp|https?)://.*?)\[/url\]~s',
'~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s'
);
// HTML tags to replace BBcode
$replace = array(
'<b>$1</b>',
'<i>$1</i>',
'<p style="text-decoration:underline;">$1</p>',
'<pre>$1</'.'pre>',
'<a href="$1">$1</a>',
'<img src="$1" alt="" />'
);
// Replacing the BBcodes with corresponding HTML tags
return preg_replace($find,$replace,$text);
}
// How to use the above function:
$text = $_POST['bio_message'];
$htmltext = showBBcodes($text);
}
$id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$bio_sql = "UPDATE users SET bio = '$htmltext' WHERE id = '$id'";
$db->query($bio_sql);
}else{}
가 텍스트 영역에서 바이오 에코
:<?php
$id = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$SQL = "SELECT * FROM users WHERE id = '$id'";
$result = $db->query($SQL);
/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
print(htmlentities($row['bio'], ENT_QUOTES, 'UTF-8'));
$result->free();
?>
잘 에코하려고 사용하고있는 코드입니다, 당신은 단지 다른 방법으로 라운드 동일 않습니다. –
시도했지만 작동하지 않습니다. $ find와 $ 교체가 다시 시작되어 순서가 바뀌 었습니다. –
정규 표현식과 치환어도 편집해야합니다. –