我对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 :(得分: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)
。