Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Вытянуть строку


Автор: plov 29.7.2006, 22:13

Вот ссылка:
http://angelscity.combats.ru/inf.pl?login=ШЕРШЕМБИЕВ&short=1

Как сделать так чтобы на странице отображалась конкретная строка из той страницы, например gamecity

Заранее спасибо. 

Автор: faost 29.7.2006, 23:14
Код

$s = file_get_contents('http://angelscity.combats.ru/inf.pl?login=%D8%C5%D0%D8%C5%CC%C1%C8%C5%C2&short=1');
$s = explode("\n", $s);

foreach($s as $k => $v) {
    echo 'Строка '.($k + 1).': '.$v.'<br />';
}
 

Т. е. чтобы вывести, допустим, 6-ую строку "gamecity=Angels city", надо написать 
Код

echo $s[5];
 

Автор: plov 30.7.2006, 05:16
щас прверю. спасибо

Добавлено @ 05:19 
ага вот. мне нужно чтобы gamecity не отображалась, только её значение. В наешм случае ангелсити 

Автор: plov 30.7.2006, 06:24
Есть ещё одна проблема:
вот код моей страницы

Код

<?php 


$arr = file("users.txt"); 
  $i = 0;  
  foreach($arr as $line) 
  { 
    list($name) = explode("/", $line);
    $user['name'][]= $name;
  } 
  for($i=count($arr)-1; $i>=0; $i--) 
  { 
 

 $s = file_get_contents("'http://angelscity.combats.ru/inf.pl?login=".$user['name'][$i]."");
$s = explode("\n", $s);
foreach($s as $k => $v) {
    
}



echo " 
  
<b>".$user['name'][$i]."[$s[7]]</b><a href='http://angelscity.combats.ru/inf.pl?login=".$user['name'][$i]."><IMG height=11  src=http://img.combats.ru/i/inf.gif width=12 border=0></A> 
----------- Город-  $s[5] <br>"; 
  } 
?>


Ну в начале она грузит файл с именами пользователей. Потом их просто отбражает.
И есть одно НО.
Вот все строки которые я хочу вывести, они выводятся только у первого имени.
У остальных значения Город - остаётся пустым.
Надеюсь поняли меня

 

Автор: Mal Hack 30.7.2006, 13:33
http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&section=1076 

Автор: plov 31.7.2006, 08:37
ну что то я ничгео не понял из тех статей. прошу помогите не  с написанием этого скрипта. 

Автор: Guedda 31.7.2006, 10:22
Цитата(plov @  30.7.2006,  07:24 Найти цитируемый пост)
Есть ещё одна проблема:

Один топик - один вопрос!

Цитата(plov @  30.7.2006,  07:24 Найти цитируемый пост)
Надеюсь поняли меня

Не сильно понятно, что ты хочешь сказать. Можешь подробнее? Где хранятся значения говода? В каком формате? 

Автор: plov 31.7.2006, 20:38
ну вот

http://angelscity.combats.ru/inf.pl?login=ШЕРШЕМБИЕВ&short=1 
тут есть gamecity
Мне нужно вывести его значение, в нашем случае Angels City
Вот моя страница
Код

<?php 

//грузим файл с поьзователями, города которых я хочу узнать
$arr = file("users.txt");             
  $i = 0;  
  foreach($arr as $line) 
  { 
    list($name) = explode("/", $line);
    $user['name'][]= $name;
  } 
  for($i=count($arr)-1; $i>=0; $i--) 
  { 
 
//строку определяем
 $s = file_get_contents("'http://angelscity.combats.ru/inf.pl?login=".$user['name'][$i]."&short=1");
$s = explode("\n", $s);
foreach($s as $k => $v) {
    
}

//выводим данные

echo " 
  
<b>".$user['name'][$i]."[$s[7]]</b><a href='http://angelscity.combats.ru/inf.pl?login=".$user['name'][$i]."&short=1><IMG height=11  src=http://img.combats.ru/i/inf.gif width=12 border=0></A> 
----------- Город-  $s[5] <br>"; 
  } 
?>



Так вот.
Вроде всё получается правльно и gamecity выводится, но выводится так: gamecity=Angels City
мне нужно изавиться от gamecity и оставить только его значение.
Второе. $s[5] выводится только у первого пользователя из списка users.txt  у остальных поле город остаётся пустым.
 Вот так.  

Автор: plov 3.8.2006, 13:39
ну что поможет кто или нет?

Автор: GiV 3.8.2006, 15:57
Структуру файла users.txt хотелось бы знать.

Автор: plov 3.8.2006, 21:12
элементарно. На каждой строчке по имени, например:


Пират
Тратата
машина
южик




Автор: GiV 4.8.2006, 11:58
Код

//грузим файл с поьзователями, города которых я хочу узнать
$arr = file("users.txt");             
foreach($arr as $line) 

    $userName = trim($line);    

    // получаем информацию о пользователе
    $userInfoPage = file_get_contents('http://angelscity.combats.ru/inf.pl?login='.urlencode($userName).'&short=1');
    
    $matches = array();
    
    // ищем строчку gamecity=ИМЯ ГОРОДА
    if ( preg_match( '~gamecity=([a-z\s]+)$~im', $userInfoPage, $matches ) ) {
                // выводим если есть такая строка
        echo '<b>' . $userName. '</b><a href="http://angelscity.combats.ru/inf.pl?login='.urlencode($userName).'&short=1"><IMG height=11  src=http://img.combats.ru/i/inf.gif width=12 border=0></A> ----------- Город -  ' . $matches[1] ." <br>\n";
    }
}

Автор: plov 4.8.2006, 21:36
спасибо большое. 
но почему то он не работает
ошибки выходят такие:

Warning: file_get_contents(): URL file-access is disabled in the server configuration in /var/www/user2687/html/users1.php on line 10

Warning: file_get_contents(http://angelscity.combats.ru/inf.pl?login=%CC%C0%D5%C0%D2%CC%C0%3A%3A&short=1): failed to open stream: no suitable wrapper could be found in /var/www/user2687/html/users1.php on line 10

Добавлено @ 21:44 
извиняюсь. ошибку свою нашёл. исправил, но всё ранво 

Warning: file_get_contents(): URL file-access is disabled in the server configuration in /var/www/user2687/html/users1.php on line 12

Warning: file_get_contents(http://angelscity.combats.ru/inf.pl?login=%CC%C0%D5%C0%D2%CC%C0&short=1): failed to open stream: no suitable wrapper could be found in /var/www/user2687/html/users1.php on line 12


Хотелось бы чтобы результат был примерно таким как тут:
http://www.rockers.ru/?a=sostav

Автор: Mal Hack 4.8.2006, 23:00
plov, е-мое, посмотри внимательно мою ссылку, которую я тебе дал !!!

Автор: plov 5.8.2006, 09:01
понимаешь, я просто в php почти не соображаю. 

Автор: Mal Hack 5.8.2006, 13:46
plov, и что? Там все на пальцах расписано !!

Автор: plov 6.8.2006, 14:58
ничего нужного мне я оттуда не исчерпнул.

Автор: GiV 9.8.2006, 10:47
С использованием ссылки от Mal Hack
Код

function http_get($host, $path, $port = "80") {
 $content = '';
 if ($socket = fsockopen($host, $port)) {
  fputs($socket, "GET $path HTTP/1.1\r\nHost: $host\r\nConnection: close;\r\n\r\n");
  if (preg_match("/^HTTP\/1\.1 (\d+) /", fgets($socket), $error)) {
   while (!feof($socket)) {
    if (!preg_match("/^(.+?):\s*(.*)$/", fgets($socket), $array)) break;
    $header[strtolower($array[1])] = rtrim($array[2]);
   }
   if (isset($header['content-length'])) for ($i = 0; $i < $header['content-length']; $i++) $content .= fgetc($socket);
   else while (!feof($socket)) $content .= fgetc($socket);
  }
  fclose($socket);
 }
 if (isset($header['transfer-encoding']) && $header['transfer-encoding'] == 'chunked') $content = decode_chunk($content);
 if (isset($header['content-encoding']) && $header['content-encoding'] == 'gzip') $content = gzinflate(substr($content, 10));
 if ($error[1] == '302' && isset($header['location'])) {
  $url = parse_url($header['location']);
  return http_get($url['host'], $url['path'].($url['query'] ? "?".$url['query'] : ""), $url['port'] ? $url['port'] : 80);
 }
 return $content;
}

//грузим файл с поьзователями, города которых я хочу узнать
$arr = file("users.txt");             
$host = "angelscity.combats.ru";
foreach($arr as $line) 

    $userName = trim($line);    
    // получаем информацию о пользователе
    $path = "inf.pl?login='.urlencode($userName).'&short=1";
    $userInfoPage = http_get($host, $path);
    
    $matches = array();
    
    // ищем строчку gamecity=ИМЯ ГОРОДА
    if ( preg_match( '~gamecity=([a-z\s]+)$~im', $userInfoPage, $matches ) ) {
                // выводим если есть такая строка
        echo '<b>' . $userName. '</b><a href="http://angelscity.combats.ru/inf.pl?login='.urlencode($userName).'&short=1"><IMG height=11  src=http://img.combats.ru/i/inf.gif width=12 border=0></A> ----------- Город -  ' . $matches[1] ." <br>\n";
    }
}

Автор: Creos 11.8.2006, 08:32
Скажите уважаемые. Если файл лежит на том же хосте, но в другой папке, то он не читается обычным fopen()?

Автор: plov 13.8.2006, 08:28
файл лежит у меня. а не на ангелссити.

Автор: Creos 13.8.2006, 10:56
plov, может Вы ответите?
Т.к. я в пхп вообще пару дней назад начал разбираться.

У меня есть домен.ру/site/readlog.php, в котором написано следующее:

Код

<?php

$lines = file("logs.txt");

foreach ($lines as $line_num => $line) {
   echo "Строка #<b>{$line_num}</b> : " . $line . "<br />\n";
}

?>


при этом в той же папке лежит logs.txt

При выполнении readlog.php содержимое logs.txt выводится.

Я смотрел разные варианты указания пути к файлу logs.txt, и при их большом множестве ниодин не подходит если файл logs.txt находится в другой папке на том же ресурсе.

Особенно меня интересует такая ситуация:
пхп может исполнятся только в папке: домен.ру/site/
а файлы типа log.txt могу быть только в папке: домен.ру/logs/

Как мне изменить скрипты что б их (logs.txt и т.п.) прочесть?

Заранее спасибо.

Автор: GiV 14.8.2006, 12:31
Код

$cDir = dirname( __FILE__ );

if ( strstr( $cDir, '\\' ) ) {
        // Win
    $rDir = substr( $cDir, 0, strrpos( dirname( __FILE__ ), '\\' ) );
} else if ( strstr( $cDir, '/' ) ) {
        // *NIX
    $rDir = substr( $cDir, 0, strrpos( dirname( __FILE__ ), '/' ) );
} else {
    $rDir = $cDir;
}

//echo $rDir;

file( $rDir . '/logs/logs.txt' );

/**
 * И дальше по тексту
 */

Автор: plov 14.8.2006, 20:52
может вы мне поможете мою проблему решить?

Автор: GiV 15.8.2006, 11:19
plov, так я Вам код уже дал выше ( http://forum.vingrad.ru/index.php?showtopic=106089&view=findpost&p=816794 )

Автор: plov 16.8.2006, 00:24
он не рабоатет!

Автор: GiV 16.8.2006, 10:07
"Обоснуй!"

Автор: -=Ustas=- 16.8.2006, 16:28
Цитата(plov @  16.8.2006,  00:24 Найти цитируемый пост)
он не рабоатет!

Ну тогда, скорее всего в нем ошибка!  smile 

Автор: plov 5.9.2006, 09:47
вот я хочу чтобы скрипт был похож на это:
http://rockers.ru/?a=sostav

прошу вас помогите мне.

GiV я написал выше причину, почему не работает твой.

Автор: DenageS 19.10.2006, 17:44
Имеется текстовый файл 1.txt. Помогите сделать так, чтобы:
-заходишь на страничку и вводишь фамилию или номер телефона
-он отображает строчку(строчки), в которой это найдет
-иначе "Не найдено"
Вот формат файла:

АбашеваВ.В.50-7-54
АбушкевичА.Е.50-2-07
АвдеенкоН.П.50-5-83
АвдонинН.В.50-5-16
АвиловаА.С.50-0-56

Иначе говоря, чтобы все записи не смогли скопировать!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)