За последние 24 часа нас посетили 15756 программистов и 1544 робота. Сейчас ищет 991 программист ...

Импорт информации с другой страницы!

Тема в разделе "PHP для новичков", создана пользователем alien-shot, 2 сен 2009.

  1. alien-shot

    alien-shot Активный пользователь

    С нами с:
    2 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Уважаемые формучане помогите пожалуйста реализовать вот какую вещь!

    Есть 50 автоматически генерирующихся страниц на php,часть текста страницы взята в тег, на каждой странице есть ссылка на форму. При переходе к старанице формы текст из тегов должен появиться на странице с формой!

    Примерно так...

    Если {пришел от (http://www.mu.ru/item.php?itemid=2)то вставить на сюда текст из тегов страницы http://www.mu.ru/item.php?itemid=2

    Изменять сами сттраницы нельзя, этот скрипт должен быть на странице где генерица форма!
    Подскажет пожалуйста кто чем может)))

    Заранее спасибо!
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Нипонила.
     
  3. alien-shot

    alien-shot Активный пользователь

    С нами с:
    2 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Текст виз тега с одной страницы надо перебросить на другую страницу! Редактировать можно только конечную страницу! Тобишьконечная страница должна понимать откуда к ней пришли и брать тег с той страницы с которй пришли)) Во как)) Прям как ребус какойто))
     
  4. Silicium

    Silicium Активный пользователь

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    так в чем проблема? ты же передаешь itemid - вот по нему и знаешь откуда пришли
     
  5. alien-shot

    alien-shot Активный пользователь

    С нами с:
    2 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Я то знаю, а скрипт который будет перебрасывать теги?
     
  6. Fduch

    Fduch Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    140
    Симпатии:
    0
    $_SERVER["HTTP_REFERER"] - в скрипте твоем адрес откуда пришли.
    file_get_content берешь страничку, парсишь ее (на вскидку - "взрываешь" сначала по началу нужного тэга, а потом по закрывающемуся нужному тэгу).
     
  7. Silicium

    Silicium Активный пользователь

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    Ты знаешь с какой странички пришел.
    Что тебе мешает на страничке с формой достать информацию странички с которой ты пришел к форме (например, с базы, или где она там хранится)
     
  8. alien-shot

    alien-shot Активный пользователь

    С нами с:
    2 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Я бы с привеликим удовольствием это сделал бы, но пока мои знания на уровне...ну вообщем на низком! Подскажите что такое парсить и как это делается и взрывать по тегам...)
     
  9. +Sten+

    +Sten+ Активный пользователь

    С нами с:
    27 авг 2007
    Сообщения:
    978
    Симпатии:
    0
    PHP:
    1. <?php
    2. $page = file_get_contents($_SERVER["HTTP_REFERER"] );
    3. preg_match_all('/<метка>(.*)<\/метка>/Usi', $page, $elements);
    4. print_r($elements);
    5. ?>
    * не тестировал.

    Только такое решение - гавно, пляска с бубном, даже не буду объяснять почему. Нет задачи, где нельзя обойтись без пляски, подумай хорошо, посмотри код с самого начала и найди то место, где ты накуралесил так, что в конце получилось гавно. Проблема закралась даже не в коде, а в проектировании способа реализации задачи.
     
  10. Fduch

    Fduch Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    140
    Симпатии:
    0
    PHP:
    1.  
    2.  <?php
    3. // получаем в переменную $page содержимое страницы откуда пршли
    4. $cntent = file_get_contents($_SERVER["HTTP_REFERER"] );
    5. // explode - взрывать
    6. $parts = explode("<тэг начала нужного блока>", $content);
    7. // теперь в массиве $part[0] код страницы от начала до тэга (или конца документа), в $part[1] либо до следующего тэга
    8. // (тогда есть еще $part[2]  и т.д.) либо до конца
    9. if ( !empty($part[1]) )
    10. {
    11. // нужный блок на странице есть
    12.    $block = explode("<закрывающийся тэг нужного блока>", $part[1]);
    13.    $block = ( isset($block[0]) ) ? $block[0] : 'Нет инфомации на странице';
    14. }
    15. else
    16. {
    17. // нужного тэга (и блока) на странице нет
    18. }
    19. // в $block имеем нужный блок информации
    20. $html = '<textarea>'.$block.'</textarea>';
    21. ?>
    22.  
    код не для получения блоков, код для описании процесса.

    а эти 50 страниц чей код генерирует и на чьих сайтах? Может проще этот блок текста брать оттуда, откуда он попадает на те страницы? Это иногда и проще и удобнее и быстрее чем выдирать контент со страниц. Но если 50 страниц - это 50 неких устройств с веб-мордой, то конечно, если там СНМП нет то только так.
     
  11. programer

    programer Активный пользователь

    С нами с:
    22 авг 2008
    Сообщения:
    58
    Симпатии:
    0
    Fduch, кажись, очепатка:
    не:
    PHP:
    1. $parts = explode("<тэг начала нужного блока>", $content);
    а:
    PHP:
    1. $part = explode("<тэг начала нужного блока>", $content);
    P.S.: если
    PHP:
    1. начало страницы <тэг>текст</тэг> конец страницы
    то разбить страничку можно разделителем "тэг>". Получится:
    PHP:
    1. $part[0] = "начало страницы <";
    2. $part[1] = "текст</";
    3. $part[2] = " конец страницы";
     
  12. alien-shot

    alien-shot Активный пользователь

    С нами с:
    2 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Спасибо вам большое товарищи! Очень помогли! Я сделал это вот так
    PHP:
    1. <?php
    2.     if ($_SERVER["HTTP_REFERER"] == 'http://item.php?itemid=2');
    3.     {$page = file_get_contents ('http://litem.php?itemid=2');
    4.     preg_match_all('/<div id=\'1\'>(.*)<\/div>/Usi', $page, $elements);
    5.     echo($elements[0][0]);
    6. }
    7. ?>
    Все эти 50 страниц генерирую я, но текст который в них генерится у меня находится в базе данных, а выдрать мне надо только часть поэтому и приходится использовать вот такой вот метод!

    А можно как нибудь сделать так, чтобы не писать конкретно с какой страницы пришел
    PHP:
    1. if ($_SERVER["HTTP_REFERER"] == 'http://item.php?itemid=2');
    так как у меня меняется только
    PHP:
    1. itemid=2
    тоесть цифра, а написать как нибудь так
    PHP:
    1. if ($_SERVER["HTTP_REFERER"] == 'http://item.php?itemid=тут какая то переменная или еще что то ) ');
    И тогда получилось бы что если я пришел отсюда http://item.php?itemid= то
    PHP:
    1. $page = file_get_contents ('http://litem.php?itemid=?')
    делат все для этой переменной! Как то так вообщем! Вкратце говоря чтобы небыло конкретной привязки к ID а была динамика! Во как)
     
  13. Fduch

    Fduch Активный пользователь

    С нами с:
    1 июл 2009
    Сообщения:
    140
    Симпатии:
    0
    programer
    ага, опечатка :)

    Согласен. Я просто хотел показать как explode() пользоваться.
    А от "хвоста" в $part[1] все равно избавляться как-то надо :)