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 :: Не выводить первые N символов из каждой строки.

 PHP.SU

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


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

> Без описания
alexa1995
Отправлено: 22 Ноября, 2015 - 17:34:02
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




Вывожу содержимое текстового файла, текст такого вида.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 17:20 22.11 ALANTA - Mercy
  3. 17:14 22.11 411 - Teardrops
  4. 17:06 22.11 Jamiroquai - Canned Heat
  5. 17:00 22.11 Celine Dion With Bee Gees - Immortality
  6. 16:56 22.11 Amari - By My Side (radio Edit)
  7. 16:54 22.11 Cristian Tarcea Feat. Reea - Looking For Your Love
  8. 16:50 22.11 Naima Adedapo - What`s Love Got To Do With It
  9.  



необходимо вывести названия без времени и даты.
Сначала я решил скрыть цыфры, точки и двоеточия.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function sliceFile($sFile, $iLines)
  4. {
  5.     $rgLines    = file($sFile);
  6.     $rgResult   = array_slice($rgLines, 0, $iLines);
  7.         $num  = array(".", ":","1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
  8.     $rgResult = str_replace($num , '', $rgResult);
  9.         return $rgResult;
  10. }
  11.  
  12. $iLines = 5;
  13. $sFile  = 'http://www.###.ru/modules/arhiv.txt';
  14.  
  15.  
  16. echo(join('<br/>', sliceFile($sFile, $iLines)));
  17.  
  18. ?>
  19.  



Но иногда цифры встречаются в названии групп или исполнителей и они отображаются неверно.
Поэтому хотелось бы узнать как это реализовать, в сторону каких функций копать..
Заранее спасибо.
 
 Top
IllusionMH
Отправлено: 22 Ноября, 2015 - 17:55:52
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




alexa1995, если точно уверены что нужно обрезать всегда одинакове кол-во символов, тогда substr/mb_substr ваш выбор. Иначе писать регулярку.
 
 Top
alexa1995
Отправлено: 22 Ноября, 2015 - 20:35:30
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Апр. 2015  


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




IllusionMH пишет:
alexa1995, если точно уверены что нужно обрезать всегда одинакове кол-во символов, тогда substr/mb_substr ваш выбор. Иначе писать регулярку.

Первые цифры всегда одинаковы.

попробовал mb_substr, не получилось..
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function sliceFile($sFile, $iLines)
  4. {
  5.     $rgLines    = file($sFile);
  6.     $rgResult   = array_slice($rgLines, 0, $iLines);
  7.         $rgResult = mb_substr($rgResult, 11, 0,'windows-1251')
  8.         return $rgResult;
  9. }
  10.  
  11. $iLines = 5;
  12. $sFile  = 'http://www.##.ru/modules/arhiv.txt';
  13.  
  14.  
  15. echo(join('<br/>', sliceFile($sFile, $iLines)));
  16.  
  17. ?>
 
 Top
andrewkard
Отправлено: 23 Ноября, 2015 - 11:49:38
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




alexa1995
Цитата:

string mb_substr (string str, int start [, int length [, string encoding]])

mb_substr() возвращает часть строки str, специфицированную параметрами start и length.

у Вас длина - 0.
 
 Top
soulner
Отправлено: 23 Ноября, 2015 - 12:13:29
Post Id



Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2012  
Откуда: Россия, Питер


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




Надо
PHP:
скопировать код в буфер обмена
  1. $rgResult = substr($rgResult, 11, strlen($rgResult)-12);

Используемая кодировка не мультибайтна, так что функции mb_... избыточны.

(Отредактировано автором: 23 Ноября, 2015 - 12:18:43)

 
 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