[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Собрать нужный документ
konstantin04
Есть документ содержащий подобные данные :
Код
<A HREF="/weather/local/GMXX1486">Aach</A><BR>
<A HREF="/weather/local/GMXX0154">Aachen</A><BR>
<A HREF="/weather/local/GMXX5415">Aalen</A><BR>


Надо вырезать из каждой строки Local ID(GMXX1486) и city(Aach) и из получившехся данных создать документ со следующими строками:
$city_data[] = array('accid' => 'Local ID', 'name' => 'city');

Помогите вырезать нужную часть, а вписать всё как надо я сам смогу.



Спустя 9 минут, 36 секунд (23.03.2009 - 17:19) konstantin04 написал(а):
Начнём с малого.
Как считать документ построчно?

Спустя 3 минуты, 18 секунд (23.03.2009 - 17:22) waldicom написал(а):
fopen, fread, fclose

Спустя 7 минут, 19 секунд (23.03.2009 - 17:29) sergeiss написал(а):
Цитата (waldicom @ 23.03.2009 - 17:22)
fopen, fread, fclose

Да и file() читает, вобщем-то, построчно. Только сразу в массив все строки. Но все равно с разбивкой по строкам.

Спустя 4 минуты, 18 секунд (23.03.2009 - 17:33) waldicom написал(а):
Цитата (sergeiss @ 23.03.2009 - 15:29)
Да и file() читает, вобщем-то, построчно. Только сразу в массив все строки. Но все равно с разбивкой по строкам.

Действительно... Просто не пользовал до этого никогда.
А она удобная? Просто если весь файл надо считать, то можно file_get_contents, а если по строкам надо, то всегда пользовался fopen'ом

Спустя 1 минута, 12 секунд (23.03.2009 - 17:35) konstantin04 написал(а):
Значит к чему я пришел
PHP
$handle fopen ("LocalID/LocalID.txt""r");
  while(!
feof($handle)){
    
$contents fread($handlefilesize($filename)); 
  }  
    echo 
$contents;
  
fclose($handle);


Вот эта строчка вводит меня в заблуждение, потому что не работает.
$contents = fread($handle, filesize($filename));

Спустя 5 минут, 55 секунд (23.03.2009 - 17:41) sergeiss написал(а):
Если ты напишешь
PHP
$info=file("LocalID/LocalID.txt");

то в переменной (массиве) $info получишь все строки твоего файла: один элемент массива - одна строка.
Для не очень больших файлов я предпочитаю пользоваться этой функцией.

Спустя 10 минут, 3 секунды (23.03.2009 - 17:51) konstantin04 написал(а):
PHP
$info=file("LocalID/LocalID.txt");
    echo 
$info[0];
   echo 
"sdg";


При таком раскладе я получаю только второе echo


Спустя 10 минут, 2 секунды (23.03.2009 - 18:01) sergeiss написал(а):
А у тебя первая строка не пустая в файле? И не забывай "переводить строку" при выводе данных. Чтобы не было кучи.
Попробуй так (только не добавляй ничего к этому коду!):
PHP
$info=file("LocalID/LocalID.txt");
echo count( $info ).' values<br>';
foreach(
 $info as $k => $val )
{
   echo "info[ $k ] = '$val'<br>";
}

Спустя 2 минуты, 52 секунды (23.03.2009 - 18:04) Kuliev написал(а):
Цитата (konstantin04 @ 23.03.2009 - 14:51)
PHP
$info=file("LocalID/LocalID.txt");
    echo $info[0];
   echo "sdg";


При таком раскладе я получаю только второе echo

Ну не знаю у меня работает!

Может у Вас в документе пусто LocalID.txt???

Спустя 1 минута, 20 секунд (23.03.2009 - 18:05) Kuliev написал(а):
Или посмотри, что в массиве
PHP
<?
echo 
"<pre>";
print_r($info);


Спустя 1 минута, 26 секунд (23.03.2009 - 18:06) delete написал(а):
Цитата (konstantin04 @ 23.03.2009 - 14:35)
Значит к чему я пришел
PHP
$handle = fopen ("LocalID/LocalID.txt", "r");
  while(!feof($handle)){
    $contents = fread($handle, filesize($filename)); 
  
}  
    echo $contents
;
  fclose($handle);


Вот эта строчка вводит меня в заблуждение, потому что не работает.
$contents = fread($handle, filesize($filename));

Конечно не работает потому что в функции filesize() ты просто не указал сам файл.
Либо $filename='LocalID/LocalID.txt' либо filesize('LocalID/LocalID.txt')

Спустя 11 минут, 31 секунда (23.03.2009 - 18:18) konstantin04 написал(а):
Ничего не выдаёт, как будто у меня путь неправильно прописан.
Я его уже менял, но результата никакого.

Спустя 4 минуты, 49 секунд (23.03.2009 - 18:23) konstantin04 написал(а):
Аха нашел, толь он мне выдаёт не то что надо.
После
PHP
echo count$info ).' values<br>';
foreach( 
$info as $k => $val )
{
   echo 
"info[ $k ] = '$val'<br>";
}

я получил следующее :
Код
273 values
info[ 0 ] = 'Aach
'
info[ 1 ] = 'Aachen
'
info[ 2 ] = 'Aalen


Но мне то нужна строчка полностью, а именно :
Код
<A HREF="/weather/local/GMXX1486">Aach</A><BR>

Спустя 4 минуты, 3 секунды (23.03.2009 - 18:27) delete написал(а):
Хм... вроде как должен файл построчно вывести, сейчас у себя посмотрю, а в файле только строки в такой виде хранятся? больше ничего?

Спустя 29 секунд (23.03.2009 - 18:27) konstantin04 написал(а):
PHP
$handle fopen ("/var/www/projekt/Golfclub/LocalID/localID.txt""r");
  while(!
feof($handle)){
    
$contents fread($handlefilesize('/var/www/projekt/Golfclub/LocalID/localID.txt')); 
     echo 
$contents;
  }  
   
  
fclose($handle);


Тоже не подходит, т.к опять же нужна строчка с кодом а получаю только название города в виде ссылки.

Спустя 48 секунд (23.03.2009 - 18:28) konstantin04 написал(а):
Да в фаиле только такие строки

Спустя 4 минуты, 14 секунд (23.03.2009 - 18:32) delete написал(а):
Конечно он будет выводит в виде ссылок потому что текст с тегами а он их преобразует

Спустя 3 минуты, 55 секунд (23.03.2009 - 18:36) konstantin04 написал(а):
А можно это как-нибудь обоити??

Спустя 1 минута, 51 секунда (23.03.2009 - 18:38) waldicom написал(а):
strip_tags

Спустя 35 секунд (23.03.2009 - 18:39) Kuliev написал(а):
Вот проверил работает )))
PHP
<?
 
// получает содержимое файла в строку
$filename "text.txt";
$handle fopen($filename"r");
$contents fread($handlefilesize($filename));
fclose($handle);

 
$text htmlspecialchars($contents);
 
 echo 
$text;  

Спустя 9 минут, 31 секунда (23.03.2009 - 18:48) konstantin04 написал(а):
Не помогло( strip_tags($contents); ):
PHP
$handle = fopen ("/var/www/projekt/Golfclub/LocalID/localID.txt", "r");
  while(!feof($handle)){
    $contents = fread($handle, filesize('/var/www/projekt/Golfclub/LocalID/localID.txt')); 
    echo  strip_tags
($contents);
  }  
   
  fclose
($handle);


PHP
$filename = "/var/www/projekt/Golfclub/LocalID/localID.txt";
$handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
fclose($handle);

 $text = htmlspecialchars($contents);
 
 echo $text
;


Cбивает всё в одну строку.
Мне же из этого всего еще номер и город вырезать надо.
Можно ли это построчно записать, чтобы работу упростить?

Спустя 2 минуты, 38 секунд (23.03.2009 - 18:51) konstantin04 написал(а):
У strip_tags я нашел правильный синтаксис, но он выдаёт только название городов.

Спустя 1 минута, 27 секунд (23.03.2009 - 18:52) delete написал(а):
Цитата (konstantin04 @ 23.03.2009 - 15:51)
У strip_tags я нашел правильный синтаксис, но он выдаёт только название городов.

Потому что он вырезает весь html используй для получения названий городов

Спустя 4 минуты, 24 секунды (23.03.2009 - 18:57) konstantin04 написал(а):
Это я уже понял. sad.gif
У меня в документе около 1600 строк и мне из каждой надо вырезать Код и Город. Если збить это всё в одну строку то вырезать коректные данные уже не реально. sad.gif
Посоветуете другой выход из ситуации??

Спустя 4 минуты, 37 секунд (23.03.2009 - 19:01) delete написал(а):
PHP
<?php
$info
=file("FILENAME.txt");
foreach(
$info as $k=>$val)
{
   echo 
htmlspecialchars("$k - $val");
   echo 
"<br>";
}

делай через file() получишь массив, тебе уже писали

Спустя 27 секунд (23.03.2009 - 19:02) Kuliev написал(а):
Цитата (konstantin04 @ 23.03.2009 - 15:57)
Это я уже понял. sad.gif
У меня в документе около 1600 строк и мне из каждой надо вырезать Код и Город. Если збить это всё в одну строку то вырезать коректные данные уже не реально. sad.gif
Посоветуете другой выход из ситуации??

Тебе обязательно это делать средствами ПХП???

Спустя 2 минуты, 13 секунд (23.03.2009 - 19:04) konstantin04 написал(а):
Примного благодарен smile.gif

Спустя 1 минута, 29 секунд (23.03.2009 - 19:05) konstantin04 написал(а):
Цитата (Kuliev @ 23.03.2009 - 16:02)

Тебе обязательно это делать средствами ПХП???

Нет не обезательно.
Но уже всё разрешилось, спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.