За последние 24 часа нас посетили 18983 программиста и 1633 робота. Сейчас ищут 929 программистов ...

Выдерание инфы из файла + проблемма с пробелом в ссылке...

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

  1. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Я не знаю как это сделать, я в пхп новичок... просто есть ссылки HTML:
    http://emeraldscity.combats.com/inf.pl?login=WHITE_DRAGON&short=1
    в которых лежит необходимая мне информация, она построчно со своим индексом, но я не знаю как вырезать её от туда + ссылок много они лишь отлечаются там где ник WHITE_DRAGON могут быть и другие + ещё проблемма с пробелом есть ник A Dennis PHP:
    '.urlencode('A+Dennis').' но оно меняет на A%2BDennis, а должно быть A%20Dennis при '.urlencode('A!Dennis').' будет A%21Dennis при '.urlencode('A%Dennis').' будет A%25Dennis а как добиться A%20Dennis???

    А если вставлять просто A%20Dennis в ссылку HTML:
    http://emeraldscity.combats.com/inf.pl?login=A%20Dennis&short=1
    то не происходит действие???

    + Ещё вопрос!!! Как вырезать информацию по ссылке? Информация содержится в текстовом файле Вида: id=1151449698 , она находиться построчно, но в какоц строке и между какими не известно (вернее просто их порядок часто меняется) так вот мне необходима информация после =, а именно цифры в данном примере, а так там много разных значений и мне надо вырезать после =...???

    Кто знает что здесь не правильно???

    может нужно так:
    PHP:
    1. <?
    2. echo "" .(substr((strpos($fcontents,"login=")), 6, 32));
    3. ?>
    или так:
    PHP:
    1. <?
    2. $rest = substr((strpos($fcontents,"login=")), 6, 32);
    3. echo $rest;
    4. ?>
    или так:
    PHP:
    1. <?
    2. echo  "" .((is_int(strpos($fcontents,"login=")))? substr($fcontents,6, 32):"");
    3. ?>
    или ещё как-то... я не знаю... Помогите???
     
  2. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    Или так:
    urlencode('A Dennis') тогда будет A%20Dennis если я не ошибаюсь, но зачем такой бред делать? Делай нормальные ссылки и всё и у тебя http://emeraldscity.combats.com/inf.pl?login=WHITE_DRAGON&short=1 WHITE_DRAGON без значения сидит:)
     
  3. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Jensi
    а когда надо вытянуть информацию по ссылке http://emeraldscity.combats.com/inf.pl?login=A%20Dennis&short=1 что тогда??? ведь тогда не работает...
     
  4. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
  5. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    Я что-то не очень хорошо понял вашу задачу, но в голову приходят функции типа parse_url и parse_str.
    Я так понял, что вам нужно взять из ссылки переменные login и short? Если так, то разберите url с помощью функции parse_url и затем из полученного массива разбирайте элемент $url['query'] функцией parse_str.
    Но кажется это не то, что вам нужно.

    Если все же то:
    http://ru.php.net/parse_url
    http://ru.php.net/parse_str
     
  6. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    WHITE_DRAGON
    да не оставляй пробелы в URL, они там нафиг не нужны и сделай нормальные URL с нормальными переменными,а не никами и т.д. ( ну не прикол запоминать такие URL:))
    Теперь по теме:
    Как вытянуть? Можно в студию скриптик или более подробное объяснение?
    А ваще,alexy, правильно написал по идее,я уж и забыл про парсеры:)
     
  7. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    PHP:
    1.  
    2. <?php
    3.  
    4.     $url = 'http://www.mysite.com?login=Dennis&short=2';   
    5.     $arr = parse_url($url);
    6.     $str = parse_str($arr['query']);
    7.    
    8.     echo $login.'::'.$short;   
    9.  
    10. ?>
    11.  
    Что-то вроде этого...
     
  8. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    PHP:
    1. $url = 'http://www.mysite.com?login=Dennis&short=2';
    Так:
    PHP:
    1. $url = 'http://emeraldscity.combats.com/inf.pl?login=A%20Dennis&short=1';
     
  9. alexy

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

    С нами с:
    4 янв 2009
    Сообщения:
    74
    Симпатии:
    0
    Адрес:
    Россия, г. Белгород
    Да, ошибся! :oops:
     
  10. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    alexy
    Спсб!!! Но это не много не то мне надо вытягивать информации не из ссылке, а то что будет при её открытии:
    Пройдя по ссылке:
    http://emeraldscity.combats.com/inf.pl?login=A%20Dennis&short=1
    Мы увидем:
    login=A Dennis
    id=1151449698
    zodiac=1
    img=20
    gamecity=Angels city
    gamecity_url=http://angelscity.combats.com
    level=9
    vicrory=7167
    defeat=1992
    klan=HARMONY
    bossklan=1

    и т.д. мне надо вытягивать всё что после =
     
  11. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
  12. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    Да ё моё,через массив можно вытащить:) - это я не могу помочь,не хочу париться с этой фигнёй)
    UPD:
    вот пример выдирания части из URL:
    PHP:
    1. function Url_Host($text, $host, $redirect)
    2. {
    3.     preg_match_all('|http.*:\/\/(.*) |Ui', $text, $match);
    4.     for ($i = 0; $i < count($match[0]); $i++) {
    5.         $url = parse_url($match[0][$i]);
    6.         if ($url['host'] != $host) {
    7.             $page = str_replace($match[0][$i],$redirect.$match[0][$i],$text);
    8.         }
    9.     }
    10.     return($page);
    11. }
    Там всё сам переделывай:)
     
  13. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Jensi
    Я что-то не могу понять что делает твой код???
     
  14. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    PHP:
    1. $_GET
    ....
     
  15. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    test1.php
    HTML:
    1. <form name=myform method=GET action=test2.php>
    2. <input type=text name=login>
    3. <input type=submit>
    4. </form>
    test2.php
    PHP:
    1. <?
    2. echo $_GET["login"];
    3. ?>
    4.  
    вот и всё решение проблемы
     
  16. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    %) Парсит URL и с массивами потом корячится,т.е. именно этот скрипт получает URL сайта ( SERVER_NAME),а тебе нужно изменить его и поставить на получение логина или чего там:)
    vital,кульное решение проблемы)))
    WHITE_DRAGON
    Забудь про эти URL,иначе ты бы уже весь сайт сделал заново,чем будешь париться с URL до конца жизни:)
     
  17. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Мне не надо парсить URL, мне надо парсить страницу которая содержит текст в строках...
    Я научился при помощи кода следующее:
    PHP:
    1. <?php
    2. if (INC !== 1) die();
    3. $title = "Test";
    4. include("modules/test/config.php");
    5. include("modules/test/login.php");
    6. $text = "";
    7. $file = file('http://emeraldscity.combats.com/inf.pl?'.urlencode('WHITE_DRAGON').'&short=1');
    8. $text.= "<center><b>Вариант 1</b></center>";
    9.  
    10. for($i=0;$i<count($file);$i++)
    11. {
    12.  if (ereg("<>", $file[$i])){$text.=$do_cat.$file[$i].$posle_cat;}
    13.  else
    14.  {
    15.   $me = explode("<>", $file[$i]);
    16.   $text.=$do_text."<img border=0 src=/templates/default/images/arrow.gif /><font color=red><b>".$me[0]."</b></font><br />".$posle_text;
    17.  }
    18. }
    19. if (count($file) == 0){ $text = $local[150];}
    20.  
    21.   $text.="<br /><hr />";
    22.   $text.= "<center><b>Вариант 2</b></center>";
    23.  
    24. for($i=0;$i<count($file);$i++)
    25. {
    26.  if (ereg("<>", $file[$i])){$text.=$do_cat.$file[$i].$posle_cat;}
    27.  else
    28.  {
    29.   $me = explode("=", $file[$i]);
    30.   $text.=$do_text."<img border=0 src=/templates/default/images/arrow.gif /><font color=green><b>".$me[0]."</b></font><br />".$posle_text;
    31.  }
    32. }
    33. if (count($file) == 0){ $text = $local[150];}
    34.  
    35.   $text.="<br /><hr />";
    36.   $text.= "<center><b>Вариант 3</b></center>";
    37.  
    38. for($i=0;$i<count($file);$i++)
    39. {
    40.  if (ereg("<>", $file[$i])){$text.=$do_cat.$file[$i].$posle_cat;}
    41.  else
    42.  {
    43.   $me = explode("=", $file[$i]);
    44.   $text.=$do_text."<img border=0 src=/templates/default/images/arrow.gif /><b>".$me[1]."</b><br />".$posle_text;
    45.  }
    46. }
    47. if (count($file) == 0){ $text = $local[150];}
    48.  
    49.   $text.="<br /><hr />";
    50.   $text.="<center><b>Вариант 4</b></center>";
    51.   $text.="<a href=".$encicl."klan/".$klan.".html target=_blank><img border=0 src=".$imgcombats."klan/".$klan.".gif /></a><b>".$login."</b> [".$level."]<a href=".$gamecity."inf.pl?".$id." target=_blank><img border=0 src=".$imgcombats."inf.gif /></a><strong>".$gamecity."</strong><strong>".$room_name."</strong>";
    52. ?>
    http://www.clan-harmony.com/test/
    Вариант 1
    показывает всю информацию кот находиться на удалённом сервере
    Вариант 2
    научился выдерать не нужную мне инф
    Вариант 3
    необходимая мне инф, но не вся... а как эту инф выдерать только определённую и записывать в определённое мною место...???
    Вариант 4
    в определённом месте должна стоять определённая информация, но я не знаю как её выдрать и вставить туда...
     
  18. vital

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

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    написал в личку
     
  19. WHITE_DRAGON

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

    С нами с:
    13 апр 2009
    Сообщения:
    65
    Симпатии:
    0
    Адрес:
    Минск
    Практически да, но как это реализовать!!!
    Какие ещё у кого есть мнения??? Подскажите!!! Ну очень необходимо!!!