2009-11-15 8 views
1

www.example.com/test에 Drupal 설치가있었습니다. 이제 라이브로 진행할 준비가되었으며 www.example.com으로 이동하려고합니다. 내의 index.php로 이동하면PHP 구문 분석 오류. Drupal6 배치

$base_url = 'http://www.example.com/'; // NO trailing slash! 

,이 같은 구문 분석 오류의 모든 종류를 얻을 :

:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' 
in /home/example/public_html/sites/all/modules/typogrify/typogrify.class.php 
on line 18 

문제는 이것이다 나는에 sites/default/settings.php에 라인을 변경

public static function amp($text) { 
    $amp_finder = "/(\s| )(&|&|&\#38;|&)(\s| )/"; 
    return preg_replace($amp_finder, '\\1<span class="amp">&amp;</span>\\3', $text); 
    } 

이와 같은 모든 기능으로 인해 오류가 발생합니다. 그렇다면 PHP는 하위 디렉토리에서 완벽하게 작동했던이 구문을 더 이상 이해하지 못합니까?

+2

어떤 PHP 버전을 사용하십니까? – Gumbo

+0

PHP 버전 4.4.9 –

+1

그럼, 바로 거기에 문제가 있습니다. – troelskn

답변

3

IIRC, PHP 4에서 가시성 선언 (private/protected/public)을 사용하려고 할 때 발생하는 오류입니다. 실제 환경에서 테스트 환경과 다른 PHP 버전을 사용하고 있습니까? 드루팔 6 코어가 여전히 PHP 4와 호환 가능하도록되어 있지만

, 많은 모듈 (4)은 더 이상 유지되지 않습니다 2008 년 8 월 때문에 모든 보안 수정 프로그램을 수정하지 않는 PHP로하지 않습니다. 따라서 프로덕션 사이트에서이를 사용하면 보안이 현저 해지지 않습니다.

'수정'에 투자하기 전에 즉시 PHP 5로 전환하는 것이 좋습니다.

아마도 귀하의 문제와 관련이 없지만 $base_url 변수를 설정하는 행에 대한 의견을 읽었습니까? 실제 URL이있는 경우 슬래시를 제거해야합니다.


편집

: 그냥 잘못된 파일에서 'Typogrify'클래스를 확인. 정적 메서드 (함수)의 모음 일뿐입니다. 그래서 그것이 당신에게 문제를 일으키는 유일한 파일이라면, 꼭 필요한 것은 아니기 때문에 거기에있는 모든 'public'선언을 제거함으로써이 문제를 해결할 수있을 것입니다. 나는이을하지 않는 것이 좋습니다

주 -! 당신은 더 이상 사용되지 않는, 관리되지 않는 PHP 버전과 생산 현장을 실행하지 않아야)

3
$base_url = 'http://www.example.com/'; // NO trailing slash! 

은 NO 슬래쉬! ;)

+0

와우. 나를 위해 좋은. –