помогите доработать граббер

Статус
В этой теме нельзя размещать новые ответы.
сделать так чтобы если страниц меньше 5000 он не выплевывал ошибки?
Дык для примера и написали 5000
PHP:
define('MAX_STR', 57);
PHP:
define('MAX_STR', 4);
 
komyak, вы меня не услышали)
ладно, раз на то пошло, вот такое
PHP:
define('MAX_STR', $_POST['number']
будет работать?
Можно ли количество через форму передавать?
 
komyak, вы меня не услышали)
ладно, раз на то пошло, вот такое

Можно ли количество через форму передавать?
Можно, к примеру
PHP:
define('MAX_STR',  $_POST['number'] ); 
define('MAIN_URL',  $_POST['site'] );
для формы
HTML:
<form method="POST" action="script.php">
	<p>Кол-во страниц <input type="text" name="number" size="20"></p>
	<p>Сайт <input type="text" name="site" size="20"></p>
	<p><input type="submit" value="Отправить" name="B1"></p>
</form>
 
Благодарю
дальше сам разберусь
"спасибо" нажать не могу, выдает сообщение форума:)
 
Такой вопрос:
потом все безобразие из $content нужно записать в базу данных wp_posts вордпресса.
Можно как-то отделить страницы друг от друга, чтобы скрипт не сбрасывал все в кучу а писал одна страница=один пост?
 
Altair-Z, Вам же комментарий оставили.
// тут надо что-то делать с полученными данными
Вот туда и добавляйте вызов функции добавления в ВП.
 
Altair-Z, Вам же комментарий оставили.
Вот туда и добавляйте вызов функции добавления в ВП.
Да это я понял.
Меня интересует как сделать чтоб все страницы не сливались в один пост. Чтобы каждая страница была отдельным постом.

---------- Post added at 18:06 ---------- Previous post was at 16:41 ----------

Смотрите.
Я делаю так
PHP:
<?php
define('MAX_STR', $_POST['number']);
define('MAIN_URL', $_POST['incoming']);
$unique_start = "<inject>"; 
$unique_end = "</inject>"; 
for($i=1; $i<=MAX_STR; ++$i){
    // http://site.ru/1.html .. http://site.ru/5000.html
    $url =  MAIN_URL.'/'.$i.'.html';
    $content = weather($url, $unique_start, $unique_end);
	require_once('wp-config.php');
	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
	mysql_select_db(DB_NAME, $link);
	$query = "INSERT INTO `DB_NAME`.`wp_posts` (
`ID` ,
`post_author` ,
`post_date` ,
`post_date_gmt` ,
`post_content` ,
`post_title` ,
`post_excerpt` ,
`post_status` ,
`comment_status` ,
`ping_status` ,
`post_password` ,
`post_name` ,
`to_ping` ,
`pinged` ,
`post_modified` ,
`post_modified_gmt` ,
`post_content_filtered` ,
`post_parent` ,
`guid` ,
`menu_order` ,
`post_type` ,
`post_mime_type` ,
`comment_count`
)
VALUES (
NULL , '1', '".date("Y-m-d H:m:s",time()-rand(60,3600*4))."', '".date("Y-m-d H:m:s",time()-rand(60,3600*4))."', '".addslashes($content)."', 'inject', 'title', 'publish', 'open', 'open', '', 'zzz', '', '', '".date("Y-m-d H:m:s",time()-rand(60,3600*4))."', '".date("Y-m-d H:m:s",time()-rand(60,3600*4))."', '', '0', '', '0', 'post', '', '0'
)";
mysql_query($query, $link);
mysql_close($link);
   }
   
function weather($url, $unique_start, $unique_end){ 
    $code = file_get_contents($url); 
    preg_match('/'.preg_quote($unique_start, '/').'(.*)'.preg_quote($unique_end, '/').'/Us', $code, $match); 
    return $match[1]; 
}  
?>
На выходе получаю следующее - если страница одна - все гуд, если 2 или больше, то все что скрипт стянул со всех страниц лепится в один пост и в колонке post_content в бд выглядит так:
Страница1Страница2Страница3

как можно сделать так, чтобы каждая страница писалась в отдельный пост?
Зараннее благодарю
 
  • Заблокирован
  • #18
взял 3 страницы. содержание:
1 - qwerty
2 - qwertz
3 - azerty
запускаю скрипт, в бд получаю в колонке post_content -qwertyqwertzazerty
если вместо записи в бд подставить например echo ($content); - выводится то же самое.
За WPPoster спасибо
в моем случае больше подходит запись напрямую в БД, но на будущее - пригодиться.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху