urlencode用波兰语字母不起作用

时间:2014-10-29 18:42:48

标签: php

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

1 个答案:

答案 0 :(得分:0)

你正在编写你的数组:

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

e.g:

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)