我需要從遠程服務器檢索GZ壓縮的XML文件,並通過simplexml_load_string
解析它。有沒有辦法做到這一點,沒有uncompressing the GZ to a file,然後通過simplexml_load_file
讀取該文件?我想跳過對我來說似乎不必要的一步。PHP:如何將GZ解壓縮爲字符串?
1
A
回答
2
您應該可以使用Zlib庫中的gzdecode
函數來執行此操作。
$uncompressedXML = gzdecode(file_get_contents($url));
更多關於gzdecode() from the PHP Docs。
但是,還有一種更簡單的方法,它是通過使用compression wrapper。
$uncompressedXML= file_get_contents("compress.zlib://{$url}");
甚至更好:
$xmlObject=simplexml_load_file("compress.zlib://{$url}");
不要忘了安裝和您的開發/生產服務器上啓用的Zlib。
0
您可以使用gzuncompress()
解壓縮字符串,但是使用gzuncompress會有一些缺陷,如字符串長度的限制和校驗和的一些問題。
您可以使用此簡寫代碼實現您期望的結果,但我建議根據數據(您正在接收的)如何壓縮來檢查額外的資源。
<?php
$compressed = gzcompress('<?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Dont forget me this weekend!</body></note>', 9);
$uncompressed = gzuncompress($compressed);
$xml = simplexml_load_string($uncompressed);
var_dump($xml);
http://php.net/manual/en/function.gzcompress.php
http://php.net/manual/en/function.gzdecode.php
0
或者乾脆:
$sitemap = 'http://example.com/sitemaps/sitemap.xml.gz';
$xml = new SimpleXMLElement("compress.zlib://$sitemap", NULL, TRUE);
相關問題
- 1. JavaScript字符串壓縮+ PHP解壓縮
- 2. PHP解壓縮字符串
- 3. 如何壓縮/解壓縮長字符串從PHP到Android?
- 4. 將NSArrays解壓縮爲字符串swift
- 5. 如何使用Excel/VBA將字符串壓縮/解壓縮爲32個字符的字母數字字符串?
- 6. 壓縮和解壓字符串減縮
- 7. 解壓縮壓縮字符串
- 8. 如何用Python解壓縮7-Zip.gz(.gz)?
- 9. 關於PHP和GZ-壓縮
- 10. 壓縮字符串,然後解壓縮字符串?
- 11. 解壓縮.gz文件作爲目錄
- 12. 如何在壓縮/解壓縮字符串後獲取短字符串?
- 13. JavaScript字符串壓縮和PHP/Ruby解壓縮
- 14. Android:使用PHP壓縮的解壓縮字符串gzcompress()
- 15. PHP壓縮字符串
- 16. 如何在腳本中壓縮/解壓縮字符串?
- 17. 如何在winrt中解壓縮由SharpZipLib壓縮的字符串?
- 18. 在PHP中,解壓縮的gz字符串中的每個字符後跟^ @,爲什麼?
- 19. 如何壓縮字符串?
- 20. GZIP串壓縮不解壓「£」字符
- 21. 如何使用PHP解壓縮.gz文件?
- 22. Ruby - 如何將二進制字符串解壓縮到普通字符串?
- 23. 如何解壓JavaScript中的字符串,用C#壓縮?
- 24. 壓縮字符串
- 25. 使用C解壓縮.gz文件#
- 26. 在C中解壓縮.gz流#
- 27. 使用R解壓縮gz文件
- 28. Ruby中的Zlib解壓縮.gz
- 29. 使用GZipStream解壓縮.gz文件
- 30. 批量解壓縮.gz文件