Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2012, 20:05   #1
Kriato
 
Регистрация: 07.09.2012
Сообщений: 4
По умолчанию PHP скрипт парсера контента(проблема с формами)

Приветствую, уважаемые. Сразу скажу - я полный нуб в теме. Только начинаю учиться. Задача - парсить RSS ленты и сохранять все статьи отдельными файлами. Вот наткнулся на уроки и написал сегодня -
Код:
<?php
if(is_dir("page/image")){mkdir( "page/image") ;}
if (isset($_POST['link_rss']) and $_POST['link_rss'] !=' ') {$link_rss=$_POST['link_rss'];} else{$link_rss=' ';}
if (isset($_POST['tochka1']) and $_POST['tochka1'] !=' ') {$tochka1=$_POST['tochka1'];} else{$tochka1=' ';}
if (isset($_POST['tochka2']) and $_POST['tochka2'] !=' ') {$tochka2=$_POST['tochka2'];} else{$tochka2=' ';}
if (isset($_POST['papka']) and $_POST['papka'] !=' ') {$papka=$_POST['papka'];} else{$papka=' ';}
if (isset($_POST['knopka'])) {$knopka=$_POST['knopka'];} else{$knopka=FALSE;}

if(!$knopka) {
echo "<form action= metod=\"POST\">
Адрес RSS               <input type='text' action='".FILE."' nama='link_rss' size='60'><br><br>
Тег для старта        <input type='text' nama='tochka1' size='60'><br><br>
Тег для окончания   <input type='text' nama='tochka2' size='60'><br><br>
Папка для парсинга  <input type='text' nama='papka' size='60'><br><br>
<input type='submit' value='ПАРСИТЬ' nama='knopka' size='60'><br><br>
</form>" ;

}
if($knopka  and  $link_rss!=' '  and $tochka1!=' ' and $tochka2!=' '  and  $papka!=' ' ) {

/**********Блок активной кнопки***********/
if(is_dir("page/".$papka)){mkdir( "page/".$papka) ;}
/*--------------------------------------------------------------------------------------------------------------------------*/
//$url = "http://www.kuzpress.ru/rss/rss.xml" ;
$content = file_get_contents ($link_rss) ;

                                                                             //заменяем  участок кода своим                                                                  //r,n - перенос строки t - табуляция(отступ)
//$content = str_replace ( "</body>" , "<img src=\"http://wpsnipp.com/wp-content/uploads/2011/06/display-custom-message-user-registration-page-screenshot.jpg\">\r\n\t</body>" , $content) ;
По идее все должно работать . Но, выскакивает ошибка
Цитата:
You don't have permission to access /metod="POST" on this server.
По началу подумал, что причина в правах файла и папок. Нет. Не могу понять в ем причина. Может где ошибку сделал? Помогите пожалуйста.
Kriato вне форума Ответить с цитированием
Старый 07.09.2012, 20:06   #2
Kriato
 
Регистрация: 07.09.2012
Сообщений: 4
По умолчанию 2

Вторая часть кода.
Код:
         //Параметры - что ищем, где ищем, куда загоняем
	         //находим заголовок и записываем в массив
     preg_match_all ("/title>[^>]+>/","$content",$title) ;
	         //находим ссылку и записываем в массив
     preg_match_all ("/link>[^>]+>/","$content",$link) ;
	         //находим описание и записываем в массив
	 preg_match_all ("/description>[^>]+>/","$content",$description) ;
    $count=count($title[0] ) -1 ;
  
         //открыть файл
    $fp = fopen("page/kod.txt", 'w+') ;
         //выводим информацию на экран
 for($i=3;$i<$count; $i++) {

               //Выводим на экран заголовок
    echo "<h3>" .substr($title[0] [$i],6,-8) . "</h3>" ;
	           //Выводим на экран ссылку
    echo "<p>" .substr($link[0] [$i],5,-7) . "</p>" ;
	           //Выводим на экран описание статьи
	 echo "<b>" .substr($description[0] [$i],12,-14) . "</b>" ;
	           //Разделительная черта
	echo "<hr>" ;
	 
	 	 // НАЧИНАЕМ СОБИРАТЬ КОНТЕНТ ПО ССЫЛКАМ
	 	     //Доработаем ссылки
	 $isprav_amp2=str_replace("&amp;","&",substr($link[0] [$i],5,-7)) ;
	 
	 //переходим по ссылкам
	 $zabrat_content = file_get_contents ($isprav_amp2) ;
	 
	 //Определение начала и окончания статьи
	 	     //обозначаем откуда парсить
        $tag_in="$tochka1";
             //обозначаем до куда парсить
        $tag_out="$tochka2";
	 
     //Указываем как обрезать статью
		    //Обрезаем сверху
         $position=strpos($zabrat_content, $tag_in) ;
         $zabrat_content=substr($zabrat_content ,$position) ;
                //Обрезаем снизу
         $position=strpos($zabrat_content, $tag_out) ;
         $zabrat_content=substr($zabrat_content ,0,$position) ;  
                 //Удаляем все теги
        //$zabrat_content=strip_tags($zabrat_content) ;
		
	//записываем собранный контент в HTML файлы
         //открыть файл
    $fp2 = fopen( "page/".$papka.$i.".html", 'w') ;
      	//Записать в файл полученную информацию
     fwrite($fp2, $zabrat_content) ;
         //закрыть файл
     fclose($fp2) ;		
	 
	 //ЗАКАНЧИВАЕМ СОБИРАТЬ КОНТЕНТ
	 
	     //Доработаем ссылки
	 $isprav_ampers=str_replace("&amp;","",substr($link[0] [$i],5,-7)) ;
	     //Записать в файл полученную информацию
     fwrite($fp,substr($title[0] [$i],6,-8)."::".substr($link[0] [$i],5,-7)."::".substr($description[0] [$i],12,-14)."::\r\n") ;
  }

    //закрыть файл
 fclose($fp) ;
/*--------------------------------------------------------------------------------------------------------------------------*/



/*--------------------------------------------------------------------------------------------------------------------------*/
echo "ссылка на RSS -".$links_rss;
/***************Конец блока***************/
}


else {
echo "<a href='http://pars.local/'>Главная страница</a>";
 }

?>
Kriato вне форума Ответить с цитированием
Старый 14.09.2012, 07:31   #3
Kriato
 
Регистрация: 07.09.2012
Сообщений: 4
По умолчанию

Исправил ошибки и переделал немного скрипт. Все равно не работает. Подскажите пожалуйста, что я сделал не верно?
Код:
	<?php	
   ini_set('max_execution_time',600) ;
$link_start= file_get_contents ("link.html") ;
     preg_match_all ("/link>[^>]+>/","$link_start",$link) ;
     preg_match_all ("/start>[^>]+>/","$link_start",$start) ;
	 preg_match_all ("/stop>[^>]+>/","$link_start",$stop) ;
    $count=count($link[0] ) ;

if(!is_dir("page/".$i)){mkdir( "page/".$i) ;}
	
for($i=0;$i<$count; $i++) {	
$links= file_get_contents (substr($link[0] [$i],5,-7)) ;
     preg_match_all ("/title>[^>]+>/","$links",$title) ;
     preg_match_all ("/link>[^>]+>/","$links",$links) ;
	 preg_match_all ("/description>[^>]+>/","$links",$description) ;
    $count_links=count($title[0] ) -1 ;
	$count_links=50;

for($ii=0;$ii<$count_links; $ii++) {
    echo "<p>" .substr($title[0] [$ii],6,-8) . "</p>" ;
    echo "<p>" .substr($links[0] [$ii],5,-7) . "</p>" ;
	   echo "<p>" .$tag_in. "</p>" ;
	   echo "<p>" .$tag_out. "</p>" ;
	echo "<hr>" ;
	/*____________________________ n ______________________________*/

	 $isprav_amp=str_replace("&amp;","&",substr($links[0] [$ii],5,-7)) ;
	 $content = file_get_contents ($isprav_amp) ;	 
	 $tag_in="<h2 class=\"nm-postheader\">";
     $tag_out="<div class=\"clearfix\">";
         $position=strpos($content,$tag_in) ;
         $content=substr($content,$position) ;
         $position=strpos($content,$tag_out) ;
         $content=substr($content ,0,$position) ;  
     $content=strip_tags($content, '<p><br><a><h1><h2><h3>') ;
	    $fp = fopen("page/".$i."/".$ii.".html", 'w+') ;
      	fwrite($fp, $content) ;
        fclose($fp) ;		
}	
	}

?>
файл с ссылками
Код:
<link>http://www.nk-tv.com/rss/xml/RSS2.0/section/7-2011-03-21-13-08-10.html</link>
<start><h2 class=\"nm-postheader\"></start>
<stop><div class=\"clearfix\"></stop>

Последний раз редактировалось Kriato; 14.09.2012 в 07:33.
Kriato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 2010. Проблема с формами. Multiman Помощь студентам 3 17.12.2011 20:16
Проблема с формами в MSVS Form_13 Win Api 1 20.09.2011 21:58
проблема с формами dima00 Общие вопросы Delphi 4 16.04.2007 20:11
Проблема с PHP скриптом, вылетает ошибка. Скрипт гостевой книги Hallo PHP 6 28.01.2007 15:27