2014-10-29 92 views
0

我有一個urlencode的問題,我的文件夾中的文件有一個波蘭字母,如±,č,ć,等,但當我點擊一個鏈接,它不工作。我做錯了什麼?這是我的代碼:urlencode波蘭語字母不工作

<?php 
       function rozszerzenie($plik){ 
       preg_match("/\.([^\.]+)$/", $plik, $matches); 
       if(count($matches) > 0) { 
        return $matches[1]; 
        } 
       return false; 
       } 
       $path = "pliki/"; 
       $dir = new DirectoryIterator($path); 
       foreach ($dir as $fileinfo) { 
        $rozsz = rozszerzenie($fileinfo); 
        $doc='<div class="dopobrania"><a href="'.$path.urlencode($dir).'" target=_blank>'.$fileinfo.'</a></div>'; 
        $pdf='<div class="dopobrania_pdf"><a href="'.$path.urlencode($dir).'" target=_blank>'.$fileinfo.'</a></div>'; 
        $zip='<div class="dopobrania_zip"><a href="'.$path.urlencode($dir).'" target=_blank>'.$fileinfo.'</a></div>'; 
        $inny='<div class="dopobrania_inny"><a href="'.$path.urlencode($dir).'" target=_blank>'.$fileinfo.'</a></div>'; 
        if($rozsz == "doc"){ 
         echo $doc; 
        } 
        elseif($rozsz == "pdf"){ 
         echo $pdf; 
        } 
        elseif($rozsz == "zip"){ 
         echo $zip; 
        } 
        else { 
         echo $inny; 
        }; 
       } 
       ?> 

回答

0

你URL編碼您的數組:

foreach ($dir as $fileinfo) { 
      ^---array 
    $doc='<div class="dopobrania"><a href="'.$path.urlencode($dir).'" 
                   ^----array 

例如爲:

php > $a = array(); 
php > echo urlencode($a); 
PHP Warning: urlencode() expects parameter 1 to be string, array given in php shell code on line 1 

你可能想urlencode($fileinfo)代替。