PHP &

3 Cevap php

Ben google şeyi aramış ve hala ben bunun için bir çözüm bulmak gibi görünüyor cant. Temelde onun ftp için bir php önyüz oluşturmak için benim arkadaşım yardım im.

Ftp bilgilerini xml kaydedilir. Yani ben bir php bunu ayrıştırmak zorunda.

<FileZillaServer>
<Users>
<User Name="anonymous">
<Option Name="Pass">aaaaaa</Option>
<Option Name="Group"/>
<Option Name="Bypass server userlimit">0</Option>
<Option Name="User Limit">0</Option>
<Option Name="IP Limit">0</Option>
<Option Name="Enabled">1</Option>
<Option Name="Comments"/>
<Option Name="ForceSsl">0</Option>
<IpFilter>
<Disallowed/>
<Allowed/>
</IpFilter>
<Permissions>
<Permission Dir="C:\xampp\anonymous">
<Option Name="FileRead">1</Option>
<Option Name="FileWrite">0</Option>
<Option Name="FileDelete">0</Option>
<Option Name="FileAppend">0</Option>
<Option Name="DirCreate">0</Option>
<Option Name="DirDelete">0</Option>
<Option Name="DirList">1</Option>
<Option Name="DirSubdirs">0</Option>
<Option Name="IsHome">1</Option>
<Option Name="AutoCreate">0</Option>
</Permission>
<Permission Dir="C:\xampp\anonymous\incoming">
<Option Name="FileRead">1</Option>
<Option Name="FileWrite">1</Option>
<Option Name="FileDelete">0</Option>
<Option Name="FileAppend">0</Option>
<Option Name="DirCreate">0</Option>
<Option Name="DirDelete">0</Option>
<Option Name="DirList">1</Option>
<Option Name="DirSubdirs">0</Option>
<Option Name="IsHome">0</Option>
<Option Name="AutoCreate">0</Option>
</Permission>
</Permissions>
<SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="0" UlType="0" UlLimit="10" ServerUlLimitBypass="0">
<Download/>
<Upload/>
</SpeedLimits>
</User>
</Users>
</FileZillaServer>

Temelde yukarıda XML örnek bir içeriğidir. PHP içerik ve ekran ayrıştırmak için bilmek gerekir.

Sadece adı görüntüler ve geçmek.

Teşekkür ederim

3 Cevap

Eğer kullanabileceğiniz birkaç PHP XML işleme modülleri vardır. Eğer gibi görünen geçerli XML ile ilgili ise DOMDocument iyi bir tanesidir.

Aşağıdaki kod belgenizi ve çıkış, her <User> etiketi içinde bulunan kullanıcı adı ve şifre ayrıştırmak olacaktır.

$doc = new DOMDocument();
$doc->load('test.xml');
$userNodes = $doc->getElementsByTagName('Users');
foreach($userNodes as $user) {
  foreach($user->childNodes as $userData) {
    if ($userData->nodeName == 'User') {
      echo "User name: ";
      echo $userData->attributes->getNamedItem('Name')->nodeValue;
      foreach($userData->childNodes as $n) {
        if ($n->nodeName == 'Option' && $n->attributes->getNamedItem('Name')->nodeValue == 'Pass') {
          echo " Password: ".$n->nodeValue."\n";
          break;
        }
      }
    }
  }
}
$xml = "your xml string";
$xml_object = simplexml_load_string($xml);

veya

$xml_file = "path/to/file";
$xml_object = simplexml_load_file($xml_file);

Burada çıkan XML Nesne aracılığıyla veri erişimini kadar okuyun: http://www.php.net/manual/en/book.simplexml.php

Siz değerleri ayıklamak için bu basit kodu kullanabilirsiniz.

$xml =  simplexml_load_string(file_get_contents('xml.xml'));

//now extract all the variables are extracted below
$i = 0;

foreach($xml->Users->User as $key=>$myuser) {
    echo 'Name: '.$myuser->Name.'<br />';
}