2015-04-03 2 views
1

Итак, я на мгновение ударился головой о клавиатуру, пытаясь понять это.Как сохранить текущий html в файл на сервере?

Использование php, как я могу сохранить текущий html страницы в .html-файле на веб-сервере?

Этот код, который я нашел, кажется, именно то, что мне нужно, но я не могу, ради жизни, понять, почему он не работает. Страница загружается в браузере просто отлично, ничего не спасает, нигде.

<?php 
// Start the buffering // 
ob_start(); 
?> 
Your page content bla bla bla bla ... 

<?php 
echo '1'; 

// Get the content that is in the buffer and put it in your file // 
file_put_contents('yourpage.html', ob_get_contents()); 
?> 

Если кто-то может любезно провести меня в правильном направлении, я буду любить вас навсегда.

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

string(4642) "<html> 
<body> 
<b><font size="6">Timesheet</font></b> 

<table> 
    <tr> 
     <td><b>Day of Week</b></td> 
     <td><b>Week 1 Hours</b></td> 
     <td><b>Week 2 Hours</b></td> 
    </tr> 
    <tr> 
     <td>Monday</td> 
     <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
     <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td> 
    </tr> 
    <tr> 
     <td>Tuesday</td> 
     <td><input type="text" name="Tuesday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime3">Sick?<input type="checkbox" tabindex="-1" name="Vac3">Vacation?</td> 
     <td><input type="text" name="Tuesday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime4">Sick?<input type="checkbox" tabindex="-1" name="Vac4">Vacation?</td> 
    </tr> 

    <tr> 
     <td>Wednesday</td> 
     <td><input type="text" name="Wednesday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime5">Sick?<input type="checkbox" tabindex="-1" name="Vac5">Vacation?</td> 
     <td><input type="text" name="Wednesday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime6">Sick?<input type="checkbox" tabindex="-1" name="Vac6">Vacation?</td> 
    </tr> 

    <tr> 
     <td>Thursday</td> 
     <td><input type="text" name="Thursday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime7">Sick?<input type="checkbox" tabindex="-1" name="Vac7">Vacation?</td> 
     <td><input type="text" name="Thursday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime8">Sick?<input type="checkbox" tabindex="-1" name="Vac8">Vacation?</td> 
    </tr> 

    <tr> 
     <td>Friday</td> 
     <td><input type="text" name="Friday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime9">Sick?<input type="checkbox" tabindex="-1" name="Vac9">Vacation?</td> 
     <td><input type="text" name="Friday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime10">Sick?<input type="checkbox" tabindex="-1" name="Vac10">Vacation?</td> 
    </tr> 

     <tr><td>Saturday</td> 
     <td><input type="text" name="Saturday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime11">Sick?<input type="checkbox" tabindex="-1" name="Vac11">Vacation?</td> 
     <td><input type="text" name="Saturday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime12">Sick?<input type="checkbox" tabindex="-1" name="Vac12">Vacation?</td> 
    </tr> 

    <tr> 
     <td>Sunday</td> 
     <td><input type="text" name="Sunday" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime13">Sick?<input type="checkbox" tabindex="-1" name="Vac13">Vacation?</td> 
     <td><input type="text" name="Sunday2" size="3" readonly="readonly" maxlength="4" value="" onkeypress="return inputLimiter(event,'Numbers')"><input type="checkbox" tabindex="-1" name="Stime14">Sick?<input type="checkbox" tabindex="-1" name="Vac14">Vacation? </td> 
    </tr> 

    <tr> 
     <td><b>Week 1 Total</td> 
     <td><input class="right" type="number" name="Wk1Total" readonly="readonly" size="5" value=""></td> 
    </tr> 

    <tr> 
     <td><b>Week 2 Total</td> 
     <td><input class="right" type="number" name="Wk2Total" readonly="readonly" size="5" value=""></td> 
    </tr> 

    <tr> 
     <td><b>Overtime Hours</td> 
     <td><input class="right" type="number" name="OT" readonly="readonly" size="5" value=""></td> 


    </tr> 

    <tr> 
     <td><b>Sick Time Used</td> 
     <td><input class="right" type="text" name="ST" size="5" value="" onkeypress="return inputLimiter(event,'Numbers')"></td> 
    </tr> 

    <tr> 
     <td><b>Vacation Used</td> 
     <td><input class="right" type="text" name="VT" size="5" value="" onkeypress="return inputLimiter(event,'Numbers')"></td> 
    </tr> 

</table> 
<b>Notes:</b> 
<br> 
<textarea name="comments" cols="73" rows="8"> 
</textarea><br> 
<br> 
<iframe width="1" height="1" frameborder="0" src=""></iframe> 
</body> 
</html> 
" 
+0

показать нам свой 'var_dump (ob_get_contents());', –

ответ

1

Хорошо, ваша буферизация, кажется, работает нормально
Попробуйте с этим кодом:

$res = file_put_contents('C:\yourpage.html', ob_get_contents()); 
var_dump($res); 

Мой ответ, чтобы записать данные в файл, который находится в абсолютном пути
Кроме того, я нужен содержимое $ res

+0

Итак, результат этого просто возвращает «bool (false)» в нижней части страницы. – LuckoftheLefty

+0

Кажется, что это проблема правильного доступа, поэтому нам нужна дополнительная информация: ваш os - это Linux или Windows, ваш apache запускается как служба? если да, с какими учетными данными пользователя запущен ... есть ли у вас рабочий код fwrite() в коде? если да, дайте мне использованный путь ... –

+0

спасибо! это была проблема с разрешениями. Мы смогли понять это. Еще раз спасибо! – LuckoftheLefty

0

Ваш фрагмент кода верен, возможно, буферизация вывода отключена в вашем файле php.ini.

+0

Где я могу найти php.ini вообще? – LuckoftheLefty

+0

это зависит от вашего хостинга, если вы не уверены, попробуйте с phpinfo() и найдите значение «output_buffering», чтобы увидеть, активен ли он. В информации о phpinfo() вы найдете также местоположение php ini – gadz82

0

Если буферизация вывода не работает для вас, и вы не можете ее устранить, вы всегда можете переключиться на подход, в котором вы добавите свой HTML-код в переменную PHP, и в конце повторите его.

$HTML = <<<QWE 
<p>Some HTML here.</p> 
<p>Some more...</p> 
QWE; 

// And append more HTML... 
$HTML .= '<b>FooBar</b>'; 

// Output at the end of your file: 
echo $HTML; 

... а затем просто сохранить $HTML содержимое переменной в месте использования ob_get_contents().

Смежные вопросы