Ik heb een PHP functie gemaakt die bestandsnamen moet hernoemen op de windows manier. Dus je hebt bestand.jpg, als die al bestaat moet het worden bestand(1).jpg, dan bestand(2).jpg enz. Om de een of andere manier returnt de functie niets bij //HIER. Dit is vreemd, want als ik return "test" doe doet hij het ook niet. Als ik de variabelen voor de return echo dan geeft hij hem wel gewoon weer. De andere 2 returns werken ook gewoon. Heeft iemand een idee waar dit aan kan liggen? Andere opmerkingen zijn ook welkom.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| public function checkFilename($original) { if (file_exists($original)) { // haal originele bestandsnaam op $getFilename = explode("/",$original); $orgFilename = $getFilename[count($getFilename)-1]; // haal het pad op $orgPath = str_replace($orgFilename,"",$original); // haal de extensie op $getExt = explode(".",$orgFilename); $ext = $getExt[count($getExt)-1]; // haal het gedeelte voor de extensie op (dus bestandsnaam zonder extensie) $partBeforeExt = $getExt[count($getExt)-2]; $length = strlen($partBeforeExt); if (substr($partBeforeExt,($length-1),1) == ")") { // er is al een haakje. haal de posities van de haakjes op om de afstand te bepalen $posA = strpos($partBeforeExt,"("); $posB = strpos($partBeforeExt,")"); $distance = $posB - $posA; // $n is het nummer tussen de haakjes $n = substr($partBeforeExt,($posA+1),($distance-1)); $newFilename = str_replace("(".$n.")","(".($n+1).")",$orgFilename); if (file_exists($orgPath.$newFilename)) { $this->checkFilename($orgPath.$newFilename); } else { //HIER return $orgPath.$newFilename; } } else { return $orgPath.$partBeforeExt."(1).".$ext; } } else { return $original; } } |