如何用PHP解析Java属性文件?


How can I parse a Java proberty file with PHP?

我有一个Java属性文件,它看起来差不多是这样的:

FD6AEA14B3581255C5D40451CDFF8168.hash=90AD759FF0B41ABD7260EF1044E75330
FD6AEA14B3581255C5D40451CDFF8168.path=Volumes/UA08154711/08154711/Lorem ipsum dolor sit amet, consetetur sadipscing/Lorem ipsum dolor sit amet, consetetur sadipscing/07 - Lorem ipsum dolor sit amet, consetetur sadipscing - Lorem ipsum dolor sit amet, consetetur sadipscing (Album Version).mp3
EA3F9134319E314BC85D59D16122800.fileName=04 - Lorem ipsum dolor sit amet, consetetur sadipscing (Album Version).mp3
EA3F9134319E314BC85D59D16122800.hash=88302129514633AAED4553F1B0CCB6B8
EA3F9134319E314BC85D59D16122800.path=Volumes/UA08154711/08154711/Lorem ipsum dolor sit amet, consetetur sadipscing/Lorem ipsum dolor sit amet, consetetur sadipscing/04 - Lorem ipsum dolor sit amet, consetetur sadipscing (Album Version).mp3
EAFB12EE4094D48A2B1BD367E5737C80.fileName=._02 - Lorem ipsum dolor sit amet, consetetur sadipscing (Explicit Version).mp3
EAFB12EE4094D48A2B1BD367E5737C80.hash=34FB1D1E3523334A89D03DE707C00968
EAFB12EE4094D48A2B1BD367E5737C80.path=Volumes/UA08154711/08154711/Lorem ipsum dolor sit amet, consetetur sadipscing/Lorem ipsum dolor sit amet, consetetur sadipscing/._02 - Lorem ipsum dolor sit amet, consetetur sadipscing (Explicit Version).mp3
fileSize=1024595340
Number=03173729

文件的目标是files/03173729.meta

我想用php解析文件,这样我就可以将数据保存在mySQL数据库中。代码:

$filepath = "files/03173729.meta"; 
        $fileContents = file_get_contents("$filepath");
        echo $fileContents;
        $result = parse_properties($fileContents);
        //Fetch the contents from the result array and add them to the database
        function parse_properties($txtProperties) {
        $result = array();
        $lines = split("'n", $txtProperties);
        $key = "";
        $isWaitingOtherLine = false;
        foreach ($lines as $i => $line) {
            if (empty($line) || (!$isWaitingOtherLine && strpos($line, "#") === 0))
                continue;
            if (!$isWaitingOtherLine) {
                $key = substr($line, 0, strpos($line, '='));
                $value = substr($line, strpos($line, '=')+1, strlen($line));        
            }
            else {
                $value .= $line;    
            }    
            /* Check if ends with single ''' */
            if (strrpos($value, "''") === strlen($value)-strlen("''")) {
                $value = substr($value,0,strlen($value)-1)."'n";
                $isWaitingOtherLine = true;
            }
            else {
                $isWaitingOtherLine = false;
            }
            $result[$key] = $value;    
            unset($lines[$i]);        
        }
            return $result;

        }

但是我不知道如何在代码中实现文件路径

你可以这样做:

<?php
    $filepath = "[your path]"; 
    $fileContents = file_get_contents("$filepath");
    $result = parse_preperties($fileContents);
    //Fetch the contents from the result array and add them to the database
    function parse_properties($txtProperties) {
     ...
     ...
     ...
     }
?>