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 :: Разбивание текста в массив (explode)

 PHP.SU

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


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

> Без описания
Maskca
Отправлено: 26 Ноября, 2011 - 23:54:42
Post Id


Частый гость


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


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




Здравствуйте, я разбиваю текст в массив функцией

А мне нужно чтобы текст разбивался и в случае если
Как можно объединить эти две функции?
(Добавление)
Я уже и так пробивал:
PHP:
скопировать код в буфер обмена
  1. $text = str_replace("\n\n", "\n", $text);
  2. $array = explode("\n",$text)

Но почему то не работает

(Отредактировано автором: 27 Ноября, 2011 - 00:58:56)



-----
http://view-tv[dot]ru - Бесплатное телевидение, кино, радио
 
 Top
Bio man
Отправлено: 27 Ноября, 2011 - 02:14:05
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




$text = nl2br($text);//вставляем перед каждым \n <br />
$array = explode('<br />', $text);
foreach($array as $val) {
$array[] = trim($val);// удаляем все пробелы, табы, переносы строк итд
}
толко позаботьтесь, что бы брэйк соответствовал бы стандарту xhtml (<br />)
 
 Top
Ch_chov
Отправлено: 27 Ноября, 2011 - 05:55:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




 
 Top
velidan
Отправлено: 03 Декабря, 2011 - 11:20:09
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2011  
Откуда: Украина, Черновцы


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




Добрый день всем. Пишу здесь потому что вопросы похожие немного, а новую тему не хочется создавать (их итак много)

Во общем читаю книгу по пхп и там идут задания после разделов. Столкнулся с таким : что мол вызвать в браузер содержимое диска (т.е. обычный dir) потом из полученной строки извлечь имена файлов и папок в разные массивы.

получил вот такую строку:
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = ".. 25.11.2011 17:58 227 .htaccess 02.12.2011 17:35 34 blablabla.php 11.11.2011 22:09 4я812 body.php 13.11.2011 12:14
  3. config 21.11.2011 17:49
  4. controllers 14.11.2011 16:27 404 db_connection.php 10.11.2011 20:51 108 default.php 10.11.2011 20:51 16 footer.php 19.11.2011 20:09 792 header.php 18.11.2011 20:01
  5. img 29.11.2011 19:20 769 index.php 21.11.2011 17:55
  6. models 10.11.2011 23:14
  7. mvc 20.11.2011 17:33 699 obrabotka.php 30.11.2011 16:43 8я591 style.css 23.11.2011 16:35 554 tesst.php 30.10.2011 21:11 95я326 Untitled-1.php 29.11.2011 19:14
  8. views" ;
  9.  


первой приходит в голову ф-ция explode - но здесь нет разделителей (и без понятия что делать) потом strtok - но опять таки нет разделителей.
есть идея что залезть в сорс код, скопировать человеческий вид массива который возвращается dir и воспользоваться ф-цией которая порежет его начиная с определенной позиции в символе (т.е. допустим с 20 позиции вырезать слово и перепрыгнуть на след строку) но оно будет без разбора резать и каталоги и имена файлов. Хотя даже не знаю какая ф-ция подходит для этого (как вариант substr - но не знаю как сделать чтобы в разные массивы шло)

пробовал еще так $str = str_word_count($str, 2) ;
но она возвращает просто слова и позиции (т.е. разделяет имена файлов и расширение на разные слова)

Не знаю что делать, обидно очень, а пропускать задание не хочу. Подскажите пожалуйста что можно сделать, если не хочется тратить энергию на написание поста то хоть намекните в сторону какой функции надо идти.

Заранее спасибо.
П.С, забыл сказать, регулярными выражениями пользоваться нельзя т.к. они в след разделе.

(Отредактировано автором: 03 Декабря, 2011 - 11:21:33)

 
 Top
DeepVarvar Супермодератор
Отправлено: 03 Декабря, 2011 - 11:25:35
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $files = array();
  2. $dirs = array();
  3. foreach (glob("/path/do/dir/*") as $item) {
  4.   if (is_dir($item)) $dirs[] = $item;
  5.   else $files[] = $item;
  6.   }
  7.  
  8. var_dump($dirs,$files);
 
 Top
Bio man
Отправлено: 03 Декабря, 2011 - 11:36:38
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




PHP:
скопировать код в буфер обмена
  1. $scan = scandir('.');
  2. $dirs = array();
  3. $files = array();
  4. foreach($scan as $item) {
  5.     if($item == '.' || $item == '..') continue;
  6.     if(is_dir($item)) {
  7.        $dirs[] = $item;
  8.        continue;
  9.     }
  10.     $files[] = $item;
  11. }
 
 Top
velidan
Отправлено: 03 Декабря, 2011 - 17:39:23
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2011  
Откуда: Украина, Черновцы


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




Спасибо огромное вам. Очень помогли.
(Правда совсем не думал в таком направлении, ожидалось что можно обойтись теми функциями что описываются в разделе посвященному обработке строк. Не предполагал совместить циклы и это.
Во общем неудобно как-то вышло, что потревожил (знаю как программисты не любят когда их спрашивают очевидные вещи). Так что еще раз извините и благодарю вас.

П.С. добавить "спасибо" не разрешает форум. У меня слишком мало сообщений.

(Отредактировано автором: 03 Декабря, 2011 - 17:41:03)

 
 Top
Bio man
Отправлено: 03 Декабря, 2011 - 19:13:28
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




velidan Ха-ха это еще не глупый вопрос (по сравнению с теми, которые бывают задают)! и это раздел для вопросов новичков, не важно какой степени глупости вопросы Подмигивание и если бы не задавали глупых вопросов мы бы умерли со скуки Хм
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB