Php 使用波兰语字母进行URL编码无效

Php 使用波兰语字母进行URL编码无效,php,Php,我对urlencode有点问题,我文件夹中的文件有波兰语字母,如ą、ę、ć、ś等。但当我单击链接时,它不起作用。我做错了什么?这是我的代码: <?php function rozszerzenie($plik){ preg_match("/\.([^\.]+)$/", $plik, $matches); if( count( $matches ) > 0 ) {

我对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;
                    };   
                } 
                ?>

您正在对数组进行URL编码:

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

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