ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

php, сессия, копирование
  #1  
Старый 10.07.2007, 13:13
Аватар для rubik-nerubik
rubik-nerubik
Участник форума
Регистрация: 04.05.2007
Сообщений: 267
Провел на форуме:
409147

Репутация: 33
По умолчанию php, сессия, копирование

Народ, как бы мне сделать что-то вароде граббера .т.е. нужен скрипт на пхп, который при заходе на него открывает какую-то определенную страницу и копирует заданную часть строки, типа от <body> до </body>...
 
Ответить с цитированием

  #2  
Старый 10.07.2007, 13:27
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

PHP код:
<html>
    <head><title>Parser</title></head>
        <body>
        <form method="POST">
        Location of the file: <input type="text" name="url" value="" style="width: 120;height:20;" /><br/></br>
        Before: <input type="text" name="before" value="" style="width: 60;height:20;" /><br/></br>
        After: <input type="text" name="after" value="" style="width: 60;height:20;" /><br/></br>
        <input type="submit" name="end" value="Parse..."/>
        </form>
        <?php
            set_time_limit
(0);

            
$url     = isset($_POST['url'])            ?    $_POST['url']         : '';
            
$before = isset($_POST['before'])        ?    $_POST['before']     : '';
            
$after     = isset($_POST['after'])        ?    $_POST['after']     : '';
            
$end     = isset($_POST['end'])            ?    $_POST['end']         : '';
            
$file    'file.txt';

            if(
$end)
            {
                if(
$url && $before && $after)
                {
                     
$ps        file_get_contents($url);

                     
$pattern "#".$before."(.*?)".$after."#is";

                      
preg_match_all($pattern$ps$outPREG_SET_ORDER);
                    foreach(
$out as $row)
                    {
                        if(
$handle fopen($file'ab'))
                        {
                            
fwrite($handle$row[1]."\r\n");
                            
fclose($handle);
                        }
                    }
                }
                else
                {
                    echo 
"Заполните все поля";
                }
            }
        
?>
        </body>
</html>
Вписываешь ссылку в первое поле...
Во второе поле вписываешь слово или тэг от которого будет браться все до второго тэга(3 поля)
Короче допустим ввели в первое поле: http://www.mail.ru
Во второе: <body bgcolor=white topmargin=0 leftmargin=0 rightmargin=0 marginwidth=0 marginheight=0 >
В третье: </body>

То в файл file.txt запишет все что находится между этими тэгами
 
Ответить с цитированием

  #3  
Старый 11.07.2007, 17:43
Аватар для Helios
Helios
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме:
1469995

Репутация: 589
Отправить сообщение для Helios с помощью ICQ
По умолчанию

эм... а причем тут сессия?
 
Ответить с цитированием

  #4  
Старый 11.07.2007, 17:46
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

Helios, да етма вообще создана не по названия...
Сначла вроде было другое название и в другом разщделе..
Перенесли и переименовали тему видимо...
Ток к чему..
ВПоолне обычное нахвание должно быть - Парсер
 
Ответить с цитированием

  #5  
Старый 15.07.2007, 02:24
Аватар для vizard-06
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

PHP код:
<?
$i
=file_get_contents('ссылка на страницу'); 
preg_match_all("/\<body\>(.*?)\<\/body\>/i",$i,$p);
echo 
$p[1][0];
?>
 
Ответить с цитированием

  #6  
Старый 15.07.2007, 03:02
Аватар для GreenBear
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
Провел на форуме:
19975136

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

а зачем _all?
 
Ответить с цитированием

  #7  
Старый 15.07.2007, 03:07
Аватар для vizard-06
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

Цитата:
Сообщение от GreenBear  
а зачем _all?
на всякий случай он загадочно говорил может он удет использовать другой тег и в каждом нужна будет такая процедура))
Если нет то вот без _all
PHP код:
<? 
$i
=file_get_contents('ссылка на страницу');  
preg_match("/\<body\>(.*?)\<\/body\>/i",$i,$p); 
echo 
$p[1]; 
?>
 
Ответить с цитированием

  #8  
Старый 15.07.2007, 03:08
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

GreenBear, ну может vizard-06 посчитал что боди может быть не одно на странице...
vizard-06, твой скрипт работать не будет т.к. в нашем случае preg_match_all нужен четвертый параметр PREG_SET_ORDER
И вывести
PHP код:
print_r($row[1]); 
 
Ответить с цитированием

  #9  
Старый 15.07.2007, 03:17
Аватар для vizard-06
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

Цитата:
Сообщение от Isis  
GreenBear, ну может vizard-06 посчитал что боди может быть не одно на странице...
vizard-06, твой скрипт работать не будет т.к. в нашем случае preg_match_all нужен четвертый параметр PREG_SET_ORDER
И вывести
PHP код:
print_r($row[1]); 
незнаю что там у тебя не работает у меня всё работает например я использую так
PHP код:
<?
$bash
='<div>рез</div><div>два</div><div>три</div><div>четыре</div><div>пять</div><div>....</div>';
    
$kol_pars=preg_match_all("/\<div\>(.*?)\<\/div\>/i",$bash,$bash_pars);
    for(
$i=0;$i<$kol_pars;$i++)
    echo 
$bash_pars[0][$i].'<br>';
?>
 
Ответить с цитированием

  #10  
Старый 15.07.2007, 09:13
Аватар для _Great_
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме:
5339610

Репутация: 4360


Отправить сообщение для _Great_ с помощью ICQ
По умолчанию

Цитата:
for($i=0;$i<$kol_pars;$i++)
echo $bash_pars[0][$i].'<br>';
Только не $bash_pars[0][$i], а $bash_pars[1][$i].

Цитата:
Сообщение от Isis  
vizard-06, твой скрипт работать не будет т.к. в нашем случае preg_match_all нужен четвертый параметр PREG_SET_ORDER
И вывести
PHP код:
print_r($row[1]); 
С какой радости не будет? И без прег_сет_ордер жизнь прекрасна.
В массиве $p[1] будут вхождения первой подмаски, индексом [0] выбирается первое.
Это используемый по дефолту тип PREG_PATTERN_ORDER
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ