파일 이름을 가져 와서 파일 이름의 카운터를 증가시키고 반환하는 함수를 생성했습니다. 그러나 반환 값이 파일 이름을 반환하지 않는다는 것을 제외하면 모든 것이 올 바릅니다.PHP 함수가 문자열을 반환하지 않습니다.
도움이 필요하십니까?
내 코드 : 사전에
$filename = join("", array_reverse($date));
$filename .= ".xml";
$dir = "../gigs";
$file = $dir."/".$filename;
function getNewFileName($filename, $dir) {
if (is_file("$dir/$filename")) {
if (strpos($filename, "_") === false) {
$filename = str_replace(".xml","_1.xml",$filename);
getNewFileName($filename, $dir);
}
else {
$pos = strpos($filename, "_");
$counter = (int)substr($filename, $pos+1,1);
$counter++;
$filename = substr($filename,0, $pos)."_".$counter.".xml";
getNewFileName($filename, $dir);
}
} else {
// echoing HERE shows that the string is manipulated correctly
return (string)$filename; // but returning here is not working
}
}
echo getNewFileName($filename, $dir); // <- this last line prints nothing out
감사합니다. , 첫째
function getNewFileName($filename, $dir) {
if (is_file("$dir/$filename")) {
if (strpos($filename, "_") === false) {
$filename = str_replace(".xml","_1.xml",$filename);
return getNewFileName($filename, $dir);
}
else {
$pos = strpos($filename, "_");
$counter = (int)substr($filename, $pos+1,1);
$counter++;
$filename = substr($filename,0, $pos)."_".$counter.".xml";
return getNewFileName($filename, $dir);
}
}
return (string)$filename;
}
echo getNewFileName($filename, $dir); // <- this last line prints nothing out
은 $ 파일 이름의 가치는 $ 입력하는 디렉토리는 무엇인가? – Natrium
'return' 문이 누락 되었습니까? – Gordon
'return' 문 바로 전에'return' 문 바로 앞에 '$ filename'을 반향시킬 때 문자열이 100 % 정확하지만 반환 값을 반환하지 않는'재귀 함수 '가 있기 때문입니다. –