Mehrere Filenames in einer String-Variable
Amo
- php
Hallo,
vielleicht ist die Antwort ganz einfach, aber ich hab bislang dazu nichts gefunden:
Ich versuche mich zur Zeit mit FPDF und möchte folgenden Code zum laufen bekommen:
$pdf= new concat_pdf();
$pdf->setFiles(array($filestring));
$pdf->concat();
$pdf->Output("Solution.pdf","D");
Mein Problem ist im Moment diese Zeile:
$pdf->setFiles(array($filestring));
Normalerweise muss der Befehl ja so aussehen:
$pdf->setFiles(array("datei1","datei2","datei3"));
Meine Variable $filesting soll eine unterschiedliche Anzahl an fertigen pdf's enthalten, die zu einem zusammengeführt werden.
Es ist aber nicht festgelegt, welche Dateien, denn diese ergeben sich variabel.
Mie muss ich diese Variable befüllen, dass es hinterher auch noch funktioniert?
So klappts jedenfalls nicht:
$filesting=chr(147).$file1.chr(148).','.chr(147).$file2.chr(148)
Hi,
Normalerweise muss der Befehl ja so aussehen:
$pdf->setFiles(array("datei1","datei2","datei3"));
Also mehrere einzelne Array-Elemente, die jeweils einen Dateinamen enthalten.
Meine Variable $filesting soll eine unterschiedliche Anzahl an fertigen pdf's enthalten, die zu einem zusammengeführt werden.
Es ist aber nicht festgelegt, welche Dateien, denn diese ergeben sich variabel.Mie muss ich diese Variable befüllen, dass es hinterher auch noch funktioniert?
So, wie man Arrays nun mal befüllt.
So klappts jedenfalls nicht:
$filesting=chr(147).$file1.chr(148).','.chr(147).$file2.chr(148)
Das wäre ja auch, wenn du es anschliessend in ein Array packst, nur *ein* Element, das mehrere Dateinamen durch Kommata getrennt enthält.
MfG ChrisB
Mein Problem ist im Moment diese Zeile:
$pdf->setFiles(array($filestring));
$wie wärs mit $pdf->setFiles($filearray);
$filesting=chr(147).$file1.chr(148).','.chr(147).$file2.chr(148)
explode() oder preg_split() kennst du aber schon? Damit kannst du dir - mit einem geeigneten Trennzeichen oder einer Trenn-Zeichenkette aus einem String ein array bauen.
Mein Problem ist im Moment diese Zeile:
$pdf->setFiles(array($filestring));$wie wärs mit $pdf->setFiles($filearray);
$filesting=chr(147).$file1.chr(148).','.chr(147).$file2.chr(148)
explode() oder preg_split() kennst du aber schon? Damit kannst du dir - mit einem geeigneten Trennzeichen oder einer Trenn-Zeichenkette aus einem String ein array bauen.
explode() kannte ich noch nicht.
Ich versuchs mal so, wobei meine Dateinamen in $filestring nun mit Leerschritten aneinandergekettet werden:
$pdf->setFiles(array(explode(" ", $filestring)));
Krieg ich aber wieder nen Fehler:
FPDF error: Cannot open Array !
Ich kanns aber nicht vorher aufbrechen und dann variabeln einfügen, weil die Anzahl der zusammenführenden PDFs auch unterschiedlich sein kann.
$pdf->setFiles(array(explode(" ", $filestring)));
Krieg ich aber wieder nen Fehler:
FPDF error: Cannot open Array !
explode() liefert als Rückgabewert bereits ein Array - weiters kann der Rückgabewert des Arrays nicht direkt weiterverwandt werden. Aber das hätte dir die Doku sicher auch verraten.
Ich kanns aber nicht vorher aufbrechen und dann variabeln einfügen, weil die Anzahl der zusammenführenden PDFs auch unterschiedlich sein kann.
Versteh' ich nicht warum sollte das nicht funktioniren.
weiters kann der Rückgabewert des Arrays nicht direkt weiterverwandt werden.
Nachtrag: in deinem Kontext trifft das aber nicht zu.
explode(',', 'foo,bar')[1]; ist z.B. nicht möglich.
weiters kann der Rückgabewert des Arrays nicht direkt weiterverwandt werden.
Nachtrag: in deinem Kontext trifft das aber nicht zu.
explode(',', 'foo,bar')[1]; ist z.B. nicht möglich.
Jetzt hab ichs gelöst, ohne explode(), ich packs gleich in ein array.
Hier ein kurzes beispiel:
$array = array("solpdf/Deckblatt.pdf");
$file2 = "solpdf/IBM\_Blade.pdf";
if (file\_exists($file2)) {
array\_push($array, $file2);
} else {}
$pdf= new concat\_pdf();
$pdf->setFiles($array);
$pdf->concat();
$pdf->Output("Solution.pdf","D");
exit;
So einfach wärs gewesen.
Array "starten" -> $array = array($file1)
Array erweitern -> array_push($array, $file2);
Array anwenden -> $pdf->setFiles($array);
Dank Euch!
So einfach wärs gewesen.
Du tust ja grade so, als wäre explode() fürchterlich kompliziert :p
Hi,
explode() kannte ich noch nicht.
Offenbar immer noch nicht ...
Ich versuchs mal so, wobei meine Dateinamen in $filestring nun mit Leerschritten aneinandergekettet werden:
$pdf->setFiles(array(explode(" ", $filestring)));
Krieg ich aber wieder nen Fehler:
FPDF error: Cannot open Array !
Natürlich, denn explode liefert ja bereits ein Array. Wenn du das noch mal in ein Array verpackst, dann hat das natürlich nicht die Struktur, die die Methode erwartet.
Beschäftige dich mal ein bisher mehr mit den Grundlagen, bevor du komplexere Probleme angehst - da scheint noch einiges an Grundwissen zu fehlen.
MfG ChrisB