2016-07-08 7 views
0

ich diese Art pdf Dateinamen haben,ohne ein anderes ähnliches Zeichen im Dateinamen zu beeinflussen

20160.pdf

und ich möchte 0 an Position ersetzen 4 Zahl beginnen zu 0, habe ich versucht, so etwas wie dieses verwenden,

$filename[0] = "20160"; 
$filename[1] = "pdf"; 
$adds  = 1; 
$new_filename = str_replace($filename[0][4], $adds, $filename[0]) . '.' . $filename[1]; 

wo 4 in $filename[0][4] generiert durch Abrufen der String-Länge von filename[0].

Frage ist, wie man Zeichen nur an Position 4 ersetzt, ohne ein anderes ähnliches Zeichen innerhalb des Dateinamens zu beeinflussen?

+3

Was ist Ihre erwartete Ausgabe? –

+3

Sie können direkt $ filename [0] [4] = 'wahteveryouwant' <- überprüfen Sie die Länge vorher aber –

+0

'str_replace' ersetzt alle Vorkommen. Wenn der zu ersetzende Charakter immer an der gleichen Position ist, kann der Vorschlag von KA_lin für dich ausreichen. Andernfalls möchten Sie vielleicht 'preg_replace' verwenden – marekful

Antwort

1

Hier gehts!

$filename[0] = "20160"; 
$filename[1] = "pdf"; 
$adds  = 1; 

$filename[0][strlen($filename[0]) - 1] = $adds; 

echo $newfilename = $filename[0].'.'.$filename[1]; 

Und der Ausgang ist "20161.pdf"

+0

Schön, wir haben ähnliche Idee, aber ich denke, es gibt noch eine bessere, nützlich für dynamische Dateiname – Fil

+0

Ja, das, warum ich Sie gewählt habe, aber nicht, was ich brauche. – Fil

Verwandte Themen