читать веб-страницу (с динамическим содержимым) и сохранять - PullRequest
0 голосов
/ 13 февраля 2011

Я использую file_get_contents(), а источником является URL.Я также использую AJAX для вставки HTML на страницу.Страница при загрузке:

<div>  
     <!-- Html goes here when the insert button is pressed -->

     <input type="button" onclick="insertHtml()" value="insert"/>
     <input type="button" onclick="saveThisPage()" value="save"/>
</div>

И когда HTML динамически добавляется с помощью AJAX:

<div>    
     <!-- Html goes here when the insert button is pressed -->
        <div>Some text here...</div>
        <div>Some text here...</div>
        <div>Some text here...</div>

     <input type="button" onclick="insertHtml()" value="insert"/>
     <input type="button" onclick="saveThisPage()" value="save"/>
</div>

Теперь я хочу сохранить то, что возвращает file_get_contents(), и сохранить данные в базе данных mysql.Я нажимаю кнопку «Сохранить», и в файл php отправляется запрос на чтение страницы (источник URL) ... кроме того, что сохраняется содержимое при загрузке БЕЗ новых данных, т.е.<div>Some text here...</div>Что я делаю?Какие функции я использую?

Ответы [ 4 ]

2 голосов
/ 13 февраля 2011

Все еще очень трудно понять, что вы пытаетесь сделать. Но основывая мой ответ на этом комментарии:

@ coosal: Я забыл добавить кнопку "Сохранить" в моем вопросе. Но процесс 1.Page Loads, 2. Я нажимаю «вставить» и данные добавляются и 3. Я нажимаю «сохранить» и страница сохраняется. Php называется ПОСЛЕ ajax загружает данные

Ты можешь сделать это. Просто внедрите кнопку сохранения на HTML-странице, которая запускает другой AJAX-запрос к PHP-сценарию, который затем сохраняет завершенную страницу:

<button onClick="$.post('save.php', {content:$('body').html()})">

Затем просто получите полное тело HTML через:

file_put_contents("/tmp/saved.html", $_POST["content"]);  // or mysql_*
1 голос
/ 13 февраля 2011

Это не практично и даже невозможно использовать file_get_contents () для извлечения всего содержимого файла вместе с содержимым файла, вызываемого через ajax, потому что php уже извлекает данные до того, как javascript выполняется как javascriptполностью клиентский скрипт, я не думаю, что это возможно.

1 голос
/ 13 февраля 2011

Когда вы загружаете данные, используя file_get_contents(), любой код Ajax на запрошенной странице не будет выполнен.Вам понадобится браузер, чтобы сделать это.

0 голосов
/ 13 февраля 2011

Если вы хотите, чтобы выполнялся JavaScript, вам, вероятно, следует извлечь данные через компонент браузера. В Windows вы можете использовать интерфейс IE IWebBrowser2. На других платформах вы можете, например, используйте геккон

...