0
我想替換我的docx文件中的多個單詞。我使用了input-elements中的單詞,並通過'POST'方法傳遞它們。我已經替換了'$ bedrijfsnaam',但我想添加更多的str替換。我創建了'$ newContents2',但正如我想的那樣,它不起作用。我該如何解決這個問題?我是否必須添加另一個'oldContents',如'oldContents2'?在PHP中替換多個字符串
$bedrijfsnaam = $_POST['bedrijfsnaam'];
$offertenummer = $_POST['offertenummer'];
$naam = $_POST['naam'];
$zip = new ZipArchive;
//This is the main document in a .docx file.
$fileToModify = 'word/document.xml';
$wordDoc = "Document.docx";
$newFile = $offertenummer . ".docx";
copy("Document.docx", $newFile);
if ($zip->open($newFile) === TRUE) {
$oldContents = $zip->getFromName($fileToModify);
$newContents = str_replace('$bedrijfsnaam', $bedrijfsnaam, $oldContents);
$newContents2 = str_replace('$naam', $naam, $oldContents);
$zip->deleteName($fileToModify);
$zip->addFromString($fileToModify, $newContents);
$return =$zip->close();
If ($return==TRUE){
echo "Success!";
}
} else {
echo 'failed';
}
$newFilePath = 'offerte/' . $newFile;
$fileMoved = rename($newFile, $newFilePath);
''$ bedrijfsnaam''是字面值,不引用變量。您可以使用數組進行搜索並替換值,請參閱手冊(http://php.net/manual/en/function.str-replace.php)。 – chris85
還要注意雙引號字符串中的美元符號-php將嘗試解析變量並用變量替換文本(http://php.net/manual/en/language.types.string.php#language .types.string.parsing) – reafle