simplexml_load_file()PHP関数を使用してgzip形式のXMLファイルをロードしようとしていますが、データをデコードする方法がわかりません。simplexml_load_file()を使用してgzip形式のXMLファイルをロードする
答えて
は、それがsimplexml_load_string()
を使用してXMLとしてgzuncompress()
と負荷の文字列を使用してfile_get_contents()
解凍を使用して文字列にそれを読んでください。
Readgzfile()は直接ブラウザに送信しますが、文字列は返しません。 – SnackerSWE
申し訳ありませんが修正されました。 –
うーん、なぜ単純な 'simplexml_load_file(" compress.zlib://test.xml ");' [代わりに](http://stackoverflow.com/questions/6973672/load-gzipped-xml-file-with-simplexml -load-file/6973867#6973867)? – hakre
/*EDIT print_r(gzdecoder(simplexml_load_file('test.xml')));
(Not sure without testing that the internals of what loads the xml
in *_load_file would see the gzipped content as invalid)
*/
$xml=simplexml_load_string(gzdecoder(file_get_contents('test.xml')));
print_r($xml);
function gzdecoder($d){
$f=ord(substr($d,3,1));
$h=10;$e=0;
if($f&4){
$e=unpack('v',substr($d,10,2));
$e=$e[1];$h+=2+$e;
}
if($f&8){
$h=strpos($d,chr(0),$h)+1;
}
if($f&16){
$h=strpos($d,chr(0),$h)+1;
}
if($f&2){
$h+=2;
}
$u = gzinflate(substr($d,$h));
if($u===FALSE){
$u=$d;
}
return $u;
}
@SnackerSWE私の答えを試しましたか... –
PHPはsupport for zlib compressionビルドであり、ちょうどcompress.zlib://
とgzipで圧縮されたデータを使用して、ファイルのパスを接頭辞とすれば完了です:魔法のように
$xml = simplexml_load_file("compress.zlib://test.xml");
作品。
X-Ref:[関連する質問とPHPのバグレポート](http://stackoverflow.com/a/14978162/367456) – hakre
- 1. PHPを使用してダウンロードするためのgzip形式のXMLファイルを提供するには
- 2. カスタムファイル形式を使用してハイブ内のxmlファイルを読む
- 3. Javaを使用しているファイルのGzip xml文字列
- 4. simplexml_load_fileを使用してXMLフィードからデータを抽出する
- 5. 不正な形式のxmlファイルをロードする
- 6. FOR XMLを使用してxml形式のデータを選択
- 7. gzip圧縮を使用したJSON形式
- 8. psycopg2 copy_expert() - gzip形式のcsvファイルをコピーするには?
- 9. Javaを使用してzip形式のXMLファイルを読む方法
- 10. SimpleXMLで使用するためのリモートgzip XMLファイルを開く
- 11. XSLTを使用した他の形式のXML変形
- 12. typeahead.js形式のファイルを使用する
- 13. WSO2 ESBを使用してXMLファイルからgzipを作成するには?
- 14. PHP - simplexml_load_fileを使用してXMLを取得する際の問題
- 15. はPythonの形式を使用してファイルをダウンロードする
- 16. C#のOpenOfficeを使用してファイル形式を変換する
- 17. simplexml_load_file()を使用しているエラーPHP
- 18. GZIPを使用してXML解析を強化する
- 19. FlexでHTTPServiceを使用してXMLファイルをロードする
- 20. RestKitを使用してXML形式で投稿リクエストを送信
- 21. Point ImageMagickを使用するファイル形式
- 22. sparkを使用してファイル圧縮形式を変換する
- 23. linuxフィルタを使用してファイル形式を変更する
- 24. gnucash xmlとsqliteファイル形式
- 25. フォルダに保存された複数の.xmlファイルのファイル形式をVBAを使用して.xlsxファイル形式に変更する方法
- 26. xsltを使用してテーブル形式でxmlからhtmlへ
- 27. Golang - XMLのマーシャリングXML time.imeとしてのXML形式の日付形式
- 28. simplexml_load_file()を使用してAmazon Affiliate APIのxmlファイルから属性を取得する
- 29. JAXBを使用してアンマーシャリングしている間に不正な形式のXML
- 30. PDF形式のiTextを使用してPDF形式のJavaFx html形式のテキスト
http://www.php.net/manual/en/function.gzdecode.phpまたは –
@Marek Sebera - この関数(gzdecode)はマニュアルにありますが、PHPでは存在しません。 –
@Pawel:PHPの一部ですが、拡張機能を有効にする必要があります。http://www.php.net/manual/en/zlib.installation.phpを参照してください。これは非常に一般的な拡張です。 – hakre