şeklinde üzerinden dosya göndermek ve bir php fonksiyonu ele

2 Cevap php

Ben (bu durumda bir csv dosyası olarak) bir dosya yüklemek ve aşağıdaki fonksiyon içine bunun içeriğini yüklemeniz gerekir:

function csv2xml($file, $container = 'data', $rows = 'row')
{
        $r = "<{$container}>\n";
        $row = 0;
        $cols = 0;
        $titles = array();


        while (($data = fgetcsv($file, 1000, ',')) !== FALSE)
        {
             if ($row > 0) $r .= "\t<{$rows}>\n";
             if (!$cols) $cols = count($data);
             for ($i = 0; $i < $cols; $i++)
             {
                  if ($row == 0)
                  {
                       $titles[$i] = $data[$i];
                       continue;
                  }

                  $r .= "\t\t<{$titles[$i]}>";
                  $r .= $data[$i];
                  $r .= "</{$titles[$i]}>\n";
             }
             if ($row > 0) $r .= "\t</{$rows}>\n";
             $row++;
        }
        $r .= "</{$container}>";

        return $r;
}

Bu im işlevi çağırmadan nasıl

csv2xml($_POST['file'], $container = 'wholething', $rows = 'item');

Şeklinde giriş kutusunun ismi dosyası

Ben şu Uyarı olsun:

  fgetcsv() expects parameter 1 to be resource, null given

2 Cevap

Siz örneğin, ilk dosyayı açmak gerekir:

$filePointer = fopen($file, "r"); // read-only

Sonra kullanımı:

while (($data = fgetcsv($filePointer, 1000, ',')) !== FALSE)

veri almak için.

Muhtemelen size yüklenen dosya almak için $ _FILES dizi kullanarak emin olmak için PHP'nin file upload bilgileri kontrol etmek isteyeceksiniz unutmayın. ve sadece $ _POST.

@ Richsage zaten soruyu yanıtladı. Hala sorun varsa, visit the documentation bir çalışma örneği için. Ben sadece işlev çağrısı işaret etmek istedim:

csv2xml($_POST['file'], $container = 'wholething', $rows = 'item');

Çalışıyor olsa da, bu işlevleri çağırmak nasıl değildir.

csv2xml($_POST['file'], 'wholething', 'item');

Yapmanız demek budur.