Расширенная запись в файл - PullRequest
0 голосов
/ 19 ноября 2011

Я пытаюсь записать в этот файл здесь http://corporate.thechamberteam.com/livesearch/questions.htm

, когда я добавляю его, он отключается от тегов <html>, и текст заканчивается на </html>, а также для того, чтобы задать вопросвыделите жирным шрифтом, как на этой странице, и ответ выделите жирным шрифтом так же, как и ответы на этой странице.Заголовок - это вопрос, а описание - ответ.

А также у каждого вопроса есть идентификатор, поэтому я хочу, чтобы вопрос был похож на <a id="Question33">

Кстати, это фрагмент, который я включаю вдругой набор кода, который поддерживает и распознает функции.

<?php
$myFile = "questions.htm";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_POST ['title'];
$stringData = $_POST ['description'];

fwrite($fh, $stringData);
fclose($fh);
?>

Вот код, который добавляет вопрос в базу данных (не страницу, я хочу, чтобы он также добавлялся на страницу)

и это сама страница> corporate.thechamberteam.com/livesearch/list.php

<?php
$hostname = "localhost"; // usually is localhost, but if not sure, check with your hosting company, if you are with webune leave as localhost
$db_user = "root"; // change to your database password
$db_password = ""; // change to your database password
$database = "search"; // provide your database name
$db_table = "searchengine"; // leave this as is

error_reporting (E_ALL ^ E_NOTICE);

# STOP HERE
####################################################################
# THIS CODE IS USED TO CONNECT TO THE MYSQL DATABASE
$db = mysql_connect($hostname, $db_user, $db_password);
mysql_select_db($database,$db);
?>

<html>
<head>
<title>Add a Question and Answer to the Database</title>
<style type="text/css">
.style1 {
    font-family: Calibri;
    font-weight: normal;
    font-size: medium;
}
.style2 {
    color: #808080;
}
.style3 {
    text-align: center;
}
.style4 {
    border-width: 0px;
}
</style>
</head>
<body>

<?php
if (isset($_REQUEST['Submit'])) {
# THIS CODE TELL MYSQL TO INSERT THE DATA FROM THE FORM INTO YOUR MYSQL TABLE
$sql = "INSERT INTO $db_table(title,description,url,keywords) values ('".mysql_real_escape_string(stripslashes($_REQUEST['title']))."','".mysql_real_escape_string(stripslashes($_REQUEST['description']))."','".mysql_real_escape_string(stripslashes($_REQUEST['url']))."','".mysql_real_escape_string(stripslashes($_REQUEST['keywords']))."')";
if($result = mysql_query($sql ,$db)) {
echo '<h1>Thank you</h1>Your information has been entered into our database<br><br>';
} else {
echo "ERROR: ".mysql_error();
}
} else {
?>

<h1 class="style3"><a href="index.php">
<img src='ChamberLogo.png' class="style4"></a> </h1>
<h1 class="style1">Add A Question to the FAQ
Database</h1>
<hr>

<form method="post" action="">
          Question:<br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="title" style="width: 486px">
<br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp Answer: <br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="description" style="height: 24px; width: 352px">
<br>
          Keywords <span class="style2">(Type Question Again):</span><br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="text" name="keywords" style="height: 24px; width: 486px">
<br><br>
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input type="submit" name="Submit" value="Submit">
</form>

<?php
}
?>
</body>
</html>

Я сам пытался использовать скрипт, который будет просто брать заголовок (вопрос) и описание (ответ)) и опубликуйте его на странице questions.htm, а также с форматированием других вопросов на странице вопросов и ответов: вопрос использует класс style1, а ответ использует класс style2.Я также хочу, чтобы между вопросом и ответом был разрыв <br>.

<?php
$myFile = "questions.htm";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_POST ['title'];
fwrite($fh, $stringData);
fclose($fh);
?>

Пример кода, который я представляю себе в голове:

$myFile = "questions.htm";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $_POST .'<br><p class="style1"><a id="Question33">"title"</p></a>'.  
$stringData = $_POST .'<br><p class="style2">"description"</p>';
fwrite($fh, $stringData);
fclose($fh);

Но вставив егов теле теги.Кто-нибудь понимает, что я говорю?

1 Ответ

0 голосов
/ 19 ноября 2011

Открывая файл в режиме добавления, вы указываете PHP начать запись в конце файла (т. Е. После закрывающего тела и тегов html).Чтобы обновить файл данными в определенной точке, самый простой способ - прочитать содержимое файла в переменную, отредактировать эту переменную, а затем записать всю переменную обратно в файл, перезаписав старые данные.

ИтакПредполагая, что вы хотите вставить непосредственно перед закрывающим тегом «body», и предполагая, что конец вашего файла - это закрывающий тег body и закрывающий тег html, вы можете сделать что-то вроде этого:

//Read the entire file into the $file_contents variable
$file_contents = file_get_contents("questions.htm");

//Remove the closing body and html tags
$file_contents = substr($file_contents, 0, strlen($file_contents) - strlen("</body></html>"));

//Add in whatever other data you want
$file_contents .= "whatever you want to append goes here";

//Add your closing body and html tags back again
$file_contents .= "</body></html>";

//Overwrite the original questions.htm file with the new contents
$fh = fopen("questions.htm", "w");
fwrite($fh, $file_contents);
fclose($fh);
...