Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разбиваем строку на два элемента
 
 автор: Night_Charter   (16.05.2006 в 12:26)   письмо автору
 
 

Добрый день:)
Есть например строки вида:

Chuck Loeb - Tropical
Black Buddafly - Rock-A-Bye
Mr. Z. - Count 2 Six
Banco De Gaia - Last Train To Lhasa
Все что до 1-го тире "-" это исполнитель, все остальное название трека!
Каким способом можно разбить подобную строку ?
Исполнитель: Chuck Loeb Трек: Tropical и т.п.
Заранее благодарю!

   
 
 автор: cheops   (16.05.2006 в 12:40)   письмо автору
 
   для: Night_Charter   (16.05.2006 в 12:26)
 

Можно поступить следующим образом
<?php 
  $text 
'Chuck Loeb - Tropical 
Black Buddafly - Rock-A-Bye 
Mr. Z. - Count 2 Six 
Banco De Gaia - Last Train To Lhasa'
;   
  
// Разбиваем строку на подстроки
  
$arr explode("\n"$text);
  
// В цикле формируем два массива
  // $singer - исполнитель
  // $track - трек
  
foreach($arr as $line)
  {
    
$tmp explode("-"$line);
    
$singer[] = trim($tmp[0]);
    
$track[] = trim($tmp[1]);
  }
  
// Выводим дампы массивов
  
echo "<pre>";
  
print_r($singer);
  echo 
"</pre>";
  echo 
"<pre>";
  
print_r($track);
  echo 
"</pre>";
?>

   
 
 автор: Night_Charter   (16.05.2006 в 12:45)   письмо автору
 
   для: cheops   (16.05.2006 в 12:40)
 

Спасибо cheops!
Уже есть продвижения..
Но есть небольшая проблема...
Вот код:

  $text = 'Black Buddafly - Rock-A-Bye';    
  

  $arr = explode("\n", $text); 


  foreach($arr as $line) 
  { 
    $tmp = explode("-", $line); 
    $singer[] = trim($tmp[0]); 
    $track[] = trim($tmp[1]); 
  } 
  // Выводим дампы массивов 
  echo "<pre>"; 
  print_r($singer); 
  echo "</pre>"; 
  echo "<pre>"; 
  print_r($track); 
  echo "</pre>"; 

Как видно, трэк называется Rock-A-Bye, а скрипт обрабатывает его и выводит только: Rock.

   
 
 автор: cheops   (16.05.2006 в 13:30)   письмо автору
 
   для: Night_Charter   (16.05.2006 в 12:45)
 

Замените строку
<?php
    $tmp 
explode("-"$line);
?>

на
<?php
    $tmp 
explode(" - "$line);
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования