/
PHP Excel 에서 "simplexml_load_string huge input lookup" 에러가 나며 엑셀 로딩이 안 될 경우
PHP Excel 에서 "simplexml_load_string huge input lookup" 에러가 나며 엑셀 로딩이 안 될 경우
Laravel Excel 패키지를 사용해서 여러 시트로 이루어진 큰 엑셀 파일을 로딩해서 처리하고 있었습니다.
일부 시트들은 백업 용으로 복사해 둔 시트라 정상 로딩이 확인된 후 로딩 속도를 위해 몇 개 시트를 삭제하니 다음과 같은 에러가 발생하고 로딩이 제대로 되지 않았습니다.
simplexml_load_string(): Entity: line 2: parser error : internal error: Huge input lookup at vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php:643 639| //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" 640| $xmlSheet = simplexml_load_string( 641| $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/$fileWorksheet")), 642| 'SimpleXMLElement', > 643| Settings::getLibXmlLoaderOptions()
해결하려면 다음과 같이 simplexml_load_string 을 호출하는 부분의 마지막 옵션 부분에 LIBXML_COMPACT | LIBXML_PARSEHUGE 를 추가해 주면 됩니다.
$xml = simplexml_load_string(curl_exec($ch), 'SimpleXMLElement', LIBXML_COMPACT | LIBXML_PARSEHUGE);
Laravel excel 을 사용한다면 vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php 의 getLibXmlLoaderOptions 호출 부분에 다음 옵션을 추가해 줍니다.
vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Xlsx.php
$xmlSheet = simplexml_load_string( $this->securityScanner->scan($this->getFromZipArchive($zip, "$dir/$fileWorksheet")), 'SimpleXMLElement', Settings::getLibXmlLoaderOptions() | LIBXML_COMPACT | LIBXML_PARSEHUGE );
Ref
, multiple selections available,
Related content
MS 엑셀(Excel)에서 UTF-8 로 된 csv 파일 가져오기
MS 엑셀(Excel)에서 UTF-8 로 된 csv 파일 가져오기
More like this
MySQL 데이타베이스와 사용자 계정 생성하기
MySQL 데이타베이스와 사용자 계정 생성하기
More like this
Confluence macro(매크로) 활용하기
Confluence macro(매크로) 활용하기
More like this
Atlassian application tunnel 로 On-Prem 과 Cloud 연결하기
Atlassian application tunnel 로 On-Prem 과 Cloud 연결하기
More like this
Atlassian Guard 를 사용한 프로비저닝 및 거버넌스 가이드
Atlassian Guard 를 사용한 프로비저닝 및 거버넌스 가이드
More like this
What happens when you exceed your user license limit in Confluence/Jira Cloud(라이센스 사용자 제한을 초과한 경우)
What happens when you exceed your user license limit in Confluence/Jira Cloud(라이센스 사용자 제한을 초과한 경우)
More like this