2008-10-08 4 views
4

이전에 문제없이 실행 된 CMS의 일부로 Excel에서 가져 오기 스크립트가 있습니다.PHP 가져 오기 스크립트의 초기화되지 않은 문자열 오프셋 오류

내 공유 호스팅 제공 업체가 PHP를 5.1에서 5.2.6으로 업그레이드했으며 최근 스크립트에서 "초기화되지 않은 문자열 오프셋 : -XXX in /path/scriptname.php 27 행"(XXX는 512와 /path/scriptname.php에서 감소하는 숫자는 당연히 스크립트의 전체 경로 임).

이 오류는 Excel 파일의 모든 행에 대해 반환됩니다.

그것은 마지막으로 "치명적인 오류로 내파
function GetInt4d($data, $pos) { 
     return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | (ord($data[$pos+3]) << 24); 
} 

: 소진 47,185,920 바이트의 허용 메모리 크기 (에 시도 라인 (27)은 가져온 데이터가 처리되고있는 첫 번째 점은 함수 내에서 단지 수익입니다 71 바이트에 /path/scriptname.php에 133 행을 할당하십시오. ").

Apache 오류 로그에는 아무 유용도 없습니다. 나는 곤두박질 친다. 누구나 최소한 어디서보아야 할 아이디어가 있습니까? 스크립트 내에서 또는 무언가 업그레이드가 필요한지 여부를 아는 것조차도 유용 할 것입니다. 나는 (업그레이드 후) tmp 디렉토리에 세션을 쓸 수 없다는 동일한 제공자의 다른 사이트에 다른 문제가있다. (해결 된 이후).

EDIT : PHP 5.2.6에서 파서가 어떤 방식 으로든 호환되지 않는 것으로 판명되었으므로 문제가되는 파서가 Spreadsheet Excel Reader 인 누군가에게 유용 할 수 있다고 생각했습니다.

답변

2

Uninitialized string offset:

... $data은 배열이 아닙니다.

1

입력 해 주셔서 감사합니다. 상황에 따라 내가 사용하고있는 구문 분석 라이브러리의 최신 버전을 찾는 '자체 해결'기능이 있습니다. 내 생각 엔 문제는 PHP 버전의 차이와 관련이있다. 정확히 무엇인지 확신 할 수 없다. 고정되었지만 실망 스러웠습니다.

편집 : 나는 질문을 끝내기 위해서 순수하게 Till의 대답을 받아 들일 것입니다. 다시 입력을위한 Thx.

관련 문제