글쎄, 지금은 몇 시간 동안 인터넷 검색을 시도했지만 지금까지 도움이되지 않았습니다.PHP regexp에서 정의되지 않은 색인 알림
Notice: Undefined index: 05 in [redacted_path]\script.php(31) : regexp code on line 1
이 스크립트는 컬러로 의미했다 : 나는 (그래, 난 그냥 통보하고 스크립트의 실행을 중지하지 않습니다 알고)에게 다음과 같은 사항의 통지를 받고 계속 이유를 알아 내려고 노력하고 있어요 irc 채널 로그를위한 re-placer; 난 다른 사이트에서 큰 기능을 움켜 잡고 약간 필요에 맞게 수정했다. 물론 학점은 its creator입니다. 그건 제쳐두고, 나는 .. 정규식에 가볍게 익숙해졌지만, 아래에서 오타가있는 오타 나 유사한 점을 발견 할 수는 없습니다. 어떤 도움을 주시면 감사하겠습니다.
<?php
if (isset($_POST['chn'])) {
$chn = $_POST['chn'];
$str = urldecode($_POST['line']);
$filen = "logs/$chn" . "_" . date('Y_F_d') . ".html";
$str = preg_replace('/https?:\/\/[^\s"<>]+/', '<a href="$0" target="_blank">$0</a>', $str);
$logln = mirc2html($str) . "<br />\r\n";
$logln = str_replace("Â","",$logln);
file_put_contents($filen,stripcslashes($logln),FILE_APPEND);
}
if (isset($_GET['test'])) {
echo str_replace("Â","",mirc2html($_GET['test']));
}
function mirc2html($x) {
$c = array("FFF","000","00007F","009000","FF0000","7F0000","9F009F","FF7F00","FFFF00","00F800","00908F","00FFFF","0000FF","FF00FF","7F7F7F","CFD0CF");
$x = preg_replace("/\x02(.*?)((?=\x02)\x02|$)/", "<b>$1</b>", $x);
$x = preg_replace("/\x1F(.*?)((?=\x1F)\x1F|$)/", "<u>$1</u>", $x);
$x = preg_replace("/\x1D(.*?)((?=\x1D)\x1D|$)/", "<i>$1</i>", $x);
$x = preg_replace("/\x03(\d\d?),(\d\d?)(.*?)(?(?=\x03)|$)/e", "'<span style=\"color: #'.\$c['$1'].'; background-color: #'.\$c['$2'].';\">$3</span>'", $x, -1, $n1);
$x = preg_replace("/\x03(\d\d?)(.*?)(?(?=\x03)|$)/e", "'</span><span style=\"color: #'.\$c['$1'].';\">$2</span>'", $x);
$x = preg_replace("/\x03|\x0F(.*?)/", "<span style=\"color: #000; background-color: #FFF;\">$1</span>", $x);
$x = str_replace("\n","",$x);
$x = str_replace("\r","",$x);
$x = preg_replace("/\<\/span\>/","",$x,1);
$x = preg_replace("/(\<\/span\>){2}/","</span>",$x);
return $x;
}
?>
기분을 상하게하는 선
따라서이다 : 당신의 오류의$x = preg_replace("/\x03(\d\d?)(.*?)(?(?=\x03)|$)/e", "'</span><span style=\"color: #'.\$c['$1'].';\">$2</span>'", $x);
와우, 그게 제가 정규 표현식이라고 부르는 것입니다. 그리고 어떤 라인은 31 번 라인입니까? – hakre
@hakre Ugh, 제대로 포맷 할 수없는 것 같습니다. 위의 질문을 수정하겠습니다. – Daedalus