Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Чтение текстового файла...и помещение данных в массив....

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
magistr
Отправлено: 11 Апреля, 2010 - 16:52:19
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Всем доброе время суток....

Дупустим есть такой текстовый файл...

CODE (html):
скопировать код в буфер обмена
  1. [CAT]
  2. <1>Категория 1 </1>
  3. <2>Категория 2</2>
  4. <3>Категория 3</3>
  5. [/CAT]
  6.  


Как поместить Категория 1, Категория 2 и тд в массив $cat[]?
Т.енадо считать какие есть категории и поместить их в массив
 
 Top
markus4
Отправлено: 11 Апреля, 2010 - 18:37:12
Post Id



Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Функция explode
$text=$_POST['TEXT'];
$cat=array();
$cat=explode($разделитель ,$text);
// Разделитель выбираешь сам. Любой символ, или слово, которое есть в массиве.
Можно нарезать по пробелам, по строкам, по абзацам или по слову "Лопата".

$count=count($cat); // Узнаём сколько кусков в массиве


-----
Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
 
 Top
magistr
Отправлено: 11 Апреля, 2010 - 18:49:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




А причем тут вообще POST...
По строкам тоже не пойдет...
т.к может быть и так
CODE (html):
скопировать код в буфер обмена
  1.  
  2.  
  3. [HOST]
  4. <1>Хост 1 </1>
  5. [/HOST]
  6. [CAT]
  7. <1>Категория 1 </1>
  8. <2>Категория 2</2>
  9. <3>Категория 3</3>
  10. [/CAT]
  11.  
  12.  

(Добавление)
А нужен только блок CAT
 
 Top
DeepVarvar Супермодератор
Отправлено: 11 Апреля, 2010 - 19:51:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




В сети куча готовых xml-парсеров - берите любой и подгоняйте под свои нужды... ))))))))
 
 Top
magistr
Отправлено: 11 Апреля, 2010 - 20:48:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Да парсеров много но они и сделаны слишком трудно...
а тут не так много текста и вариантов...должен же быть простой способ?
 
 Top
JustUserR
Отправлено: 13 Апреля, 2010 - 13:29:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




magistr пишет:
Да парсеров много но они и сделаны слишком трудно...
а тут не так много текста и вариантов...должен же быть простой способ?
А вам не проще хранить свои данные в формате XML и пользоваться этой библиотекой http://php.su/functions/?cat=simplexml для разбора ваших данных Преимущество такого подхода в том что формат ваших данных получается унифицированным - а не специфическим и его проще будет использовать потом


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
magistr
Отправлено: 15 Апреля, 2010 - 16:06:00
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Вот код из примера...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include 'example.php';
  3.  
  4. $xml = simplexml_load_string($xmlstr);
  5.  
  6. echo $xml->movie[0]->plot; // "So this language. It's like..."
  7. ?>

Что за массив movie[0]?и почему ноль?
 
 Top
JustUserR
Отправлено: 15 Апреля, 2010 - 16:47:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




magistr пишет:
Что за массив movie[0]?и почему ноль?
Согласано стандартам XML должен быть один корневой тег (Здесь это movies) а внутри него может быть уже множество тегов - поэтому movie[0] означает взять первый тег movie по предоставленному XML-пути


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
magistr
Отправлено: 15 Апреля, 2010 - 21:05:52
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




А что <movies> обязателен перед <movie>?
(Добавление)
а что в нем писать по русски нельзя?
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 5: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xEE 0xEF 0xE8 0xF1 in U:\home\server-ip.ru\catalog\client\index3.php on line 3
  2.  
  3. Warning: simplexml_load_string() [function.simplexml-load-string]: <h1>www.test.ru/описание/105</h1> in U:\home\server-ip.ru\catalog\client\index3.php on line 3
  4.  
  5. Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in U:\home\server-ip.ru\catalog\client\index3.php on line 3

(Добавление)
а еще вот такой вопрос..
PHP:
скопировать код в буфер обмена
  1.  
  2. $host = "www.test.ru/test//105";
  3. $pos = strpos($host, "//");
  4.     $content= substr($host, 0, $pos);
  5.        
  6.         $pos = strpos($content, "/");
  7.     $content = substr($content,  $pos);
  8.  


выводит /test
а как сделать так что бы было просто test?
и как сделать что бы еще потом выводило 105?
 
 Top
JustUserR
Отправлено: 16 Апреля, 2010 - 13:16:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




magistr пишет:
А что <movies> обязателен перед <movie>?
В данном случае не обязателен и может быть опущен - ведь по стандарту оформления XML-документов всегда должен быть один корневой элемент в котором лежат все остальные
magistr пишет:
А что в нем писать по русски нельзя?
Можно конечно - только на забудьте установить нужную кодировку в <?xml version="1.0" charset="windows-1251" ?> а также кодировку локали в PHP-скрипте
magistr пишет:
Выводит /test а как сделать так что бы было просто test?
Функция str_pos ищет позицию вхождения первого символа из подстроки - поэтому если вы хотите начать выделение новой подстроки без учета текущей - то прибавьте ее длину опредяляемую с помощью str_len


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB