콘텐츠 관리 시스템에서 일하고 있는데 현재 BB 코드를 사용하여 특수 문자를 사용할 수 있습니다. 이것이 설정되는 방식은 2 개의 배열을 사용하는 것입니다. 하나는 BB 코드를 찾고, 다른 하나는 바꿀 필요가있는 것들입니다.PHP 코드를 배열에 삽입 할 때의 문제
지금 내가 가지고있는 문제는 요청할 때 약간의 PHP 코드를 실행해야 할 필요가 있다는 것입니다. 그 일을 어떻게 하죠? 어느 내 질문에 : 어떻게 배열에 일부 PHP 코드를 삽입합니까?
내 코드 : 내가 얻을
$replace = array(
"@\[email protected]",
"/\[b\](.+?)\[\/b\]/is",
"/\[code\=(.+?)\](.+?)\[\/code\]/is"
);
$find = array(
"<br />",
"<strong>$1</strong>",
"<?php include_once($_SERVER['DOCUMENT_ROOT'].'/source/geshi/geshi.php'); $source=file_get_contents('file.php'); $language='$1'; $geshi=new GeSHi($source, $language); echo'<code class=\"num\">', implode(range(1,count(file('file.php'))), '<br />'), '</code>'; echo $geshi->parse_code(); ?>"
);
오류 :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /testing/bbcode.php on line 26
감사를 앞두고
편집 : 따옴표 반대를위한 하나의 스와핑이 속임수를 썼는지! 나는이있을 때
:
"<font color=\"$1\">$2</font>",
그것은 잘 작동 : 내 $에 내 $ 찾기 배열에서
"/\[color\=(.+?)\](.+?)\[\/color\]/is",
하고,이 배열 교체
는 지금은 또 다른 문제가 텍스트를 입력 된 색상으로 렌더링합니다. 예를 들어 [code = php] [/ code]를 사용하면 전혀 렌더링되지 않고 "[code = php] [/ code]"로 표시됩니다. 이 문제를 어떻게 해결합니까?
? 너 제정신이야? –
그렇다면 정확히이 방법을 사용하면 보안을 강화할 수 있으며, 약 10 억 가지 방법으로 생각할 수 있습니다. 함수에 변수를 사용하여 함수 이름을 만들기 위해 변수를 연결하는 것에서부터 변수 이름에 숫자를 사용하는 것에 이르기까지 ... 당신은 결코 이것을 확보 할 수 없을 것입니다. 그리고 당신의 PHP 스크립트가 할 수있는 일 (사용자의 서버에서 거의 모든 명령)은 사용자가 서버에서 할 수 있습니다. –
@JonathanKuhn이, 아니, 나에 의해 accessable 한 단지이며, 필자는 그것을 배우고 만드는 고체 계정 시스템에 의해 확보가 늘 어디서든 웹 사이트 : – BananaMan