Я пытаюсь использовать PHP для отправки значений формы в формате элемента списка, который содержит изображение и надпись, которая будет добавлена в текстовый файл, который затем читается другой страницей. Часть загрузки изображения работает нормально, но вывод php выглядит так: <li><img alt= " " src=" " > </li>
когда это должно быть больше похоже на <li><img src="img/comics/sa005.png">Comic 5 - </li>
<?php
//get item details
$title = $_POST['title'];
$alt = $_POST['alt'];
$caption = $_POST['caption'];
$location = $_POST['location'];
//file location
$file = 'listitems.txt';
// The list item to add to the file
$string = ("\n <li>" . $title . "<img alt= \" " . $alt . " \" src=\" " . $location . " \" > " . $caption . "</li>");
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
// and the LOCK_EX flag to prevent anyone else writing to the file at the same time
file_put_contents($file, $string, FILE_APPEND | LOCK_EX);
echo "string = ";
echo $string;
?>
<form action="appendlist.php" method="post">
<input name="title" type="textbox" placeholder="Title" class="form-control" ><br><br>
<input name="alt" type="textbox" placeholder="Alt text" class="form-control" ><br><br>
<input name="caption" type="textbox" placeholder="Image caption" class="form-control" ><br><br>
<input name="location" type="textbox" placeholder="File location" class="form-control" >
<br>
<input type="submit" value="Add Image" name="submit">
</form>
Ваш код также прав. но вы должны удалить лишнее пространство. если это не работает, то другая проблема.
вместо того чтобы пытаться избежать двойных кавычек, попробуйте просто использовать одинарные кавычки, где вам нужна инкапсулированная строка
$string = ("\n <li>" . $title . "<img alt='" . $alt . "' src='" . $location . "' > " . $caption . "</li>");
<li><img alt='' src='' > </li>