Tôi có thể phân tích cú pháp tệp plist bằng php và nhập nó vào một mảng, chẳng hạn như $_POST['']
để tôi có thể gọi $_POST['body']
và nhận chuỗi có <key> body
?Cách phân tích tệp .plist bằng php?
13
A
Trả lời
22
1
Googling cho "phân tích cú pháp php plist" bật lên this bài đăng blog mà dường như để có thể làm những gì bạn đang yêu cầu.
0
Hãy xem một số thư viện ở đó nhưng chúng có yêu cầu bên ngoài và có vẻ quá mức cần thiết. Đây là một hàm đơn giản đặt dữ liệu vào mảng kết hợp. Điều này làm việc trên một vài tập tin itist xuất khẩu itunes tôi đã cố gắng.
// pass in the full plist file contents
function parse_plist($plist) {
$result = false;
$depth = [];
$key = false;
$lines = explode("\n", $plist);
foreach ($lines as $line) {
$line = trim($line);
if ($line) {
if ($line == '<dict>') {
if ($result) {
if ($key) {
// adding a new dictionary, the line above this one should've had the key
$depth[count($depth) - 1][$key] = [];
$depth[] =& $depth[count($depth) - 1][$key];
$key = false;
} else {
// adding a dictionary to an array
$depth[] = [];
}
} else {
// starting the first dictionary which doesn't have a key
$result = [];
$depth[] =& $result;
}
} else if ($line == '</dict>' || $line == '</array>') {
array_pop($depth);
} else if ($line == '<array>') {
$depth[] = [];
} else if (preg_match('/^\<key\>(.+)\<\/key\>\<.+\>(.+)\<\/.+\>$/', $line, $matches)) {
// <key>Major Version</key><integer>1</integer>
$depth[count($depth) - 1][$matches[1]] = $matches[2];
} else if (preg_match('/^\<key\>(.+)\<\/key\>\<(true|false)\/\>$/', $line, $matches)) {
// <key>Show Content Ratings</key><true/>
$depth[count($depth) - 1][$matches[1]] = ($matches[2] == 'true' ? 1 : 0);
} else if (preg_match('/^\<key\>(.+)\<\/key\>$/', $line, $matches)) {
// <key>1917</key>
$key = $matches[1];
}
}
}
return $result;
}
Các vấn đề liên quan
- 1. Phân tích cú pháp tệp .plist thành XML đơn giản C#
- 2. Chia sẻ tệp plist bằng iCloud
- 3. Phân tích tệp XML bằng C#?
- 4. Phân tích cú pháp js/css dưới dạng tệp tin PHP bằng cách sử dụng htaccess
- 5. Phân tích tệp (ics/icalendar) bằng cách sử dụng Python
- 6. Cách phân tích cú pháp tệp html bằng clojure?
- 7. Phân tích cú pháp XML CDATA bằng PHP
- 8. Trình phân tích cú pháp SSI được viết bằng PHP?
- 9. Trình phân tích cú pháp PHP cho các tệp cachegrind?
- 10. Phân tích cú pháp tệp .htaccess Với PHP
- 11. Phân tích cú pháp các tệp XML lớn trong PHP
- 12. Làm cách nào để phân phát tệp .flv bằng PHP?
- 13. Phân tích các thẻ tùy chỉnh bằng PHP
- 14. Cách đọc tệp OSX .plist từ Java?
- 15. Làm thế nào để phân tích cú pháp tệp OFX (Phiên bản 1.0.2) bằng PHP?
- 16. Phân tích cú pháp XML bằng cách sử dụng XSD trong PHP
- 17. Cách phân tích tệp tar trong C++
- 18. Phân tích tệp nhị phân trong Ruby
- 19. Phân tích các tệp C
- 20. Cách phân tích nhận xét bằng FParsec
- 21. Phân tích cú pháp XML PHP
- 22. phân tích cú pháp tệp được phân tách bằng tab bằng Python
- 23. Phân tích cú pháp các tệp mbox bằng Python
- 24. "Lỗi khi phân tích cú pháp tệp XML" khi phân tích cú pháp bằng cách sử dụng XInclude
- 25. Phân tích cú pháp tệp txt được phân tách bằng CSV/tab bằng Python
- 26. cách phân tích dữ liệu xml bằng cách sử dụng phân tích cú pháp libxml
- 27. PHP EDI X12 Phân tích cú pháp
- 28. php chuỗi phân tích cú pháp xml
- 29. Phân tích chuỗi đa chuỗi trong PHP
- 30. Mã hóa/giải mã tệp .plist ios
Tôi ... có sử dụng cụm từ thông dụng này để thử và phân tích cú pháp XML không? –
trình phân tích cú pháp xml đặt khóa/giá trị của mục nhập plist dưới dạng các thực thể riêng biệt trong bản nhạc. điều này đặt chúng như các mảng được gán giá trị khóa./shrug –
Bạn đang dựa vào đó là các dòng mới và các thẻ xml được hình thành cụ thể. –