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

Форум PHP

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

 

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

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

тема: как избавиться от вывода одинаковых строк???
 
 автор: Gangster   (16.07.2008 в 16:02)   письмо автору
 
 

<?php
$text = file('1.txt');
foreach ($text as $line)
{

if (preg_match("/http:+[^>]+\.mp4/", $line, $match))

echo $match[0]."<br>";
}
?>
данный код выводит мне одинаковые строки, т.е. каждая строка по два раза. Подскажите как это исправить??? вывод такой:
http://blip.tv/file/get/RichieB-wellingtonBotanicalGardens254.mp4
http://blip.tv/file/get/RichieB-wellingtonBotanicalGardens254.mp4
http://blip.tv/file/get/RichieB-fantailPiwakawaka644.mp4
http://blip.tv/file/get/RichieB-fantailPiwakawaka644.mp4
http://blip.tv/file/get/RichieB-rimu887.mp4
http://blip.tv/file/get/RichieB-rimu887.mp4

   
 
 автор: GeorgeIV   (16.07.2008 в 16:27)   письмо автору
 
   для: Gangster   (16.07.2008 в 16:02)
 

попробуй
echo $match[0][0]."<br>";

   
 
 автор: Gangster   (16.07.2008 в 16:34)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 16:27)
 

неа. не работает. попробовал. выводит просто тупо "h" в каждой строчке

   
 
 автор: Giga   (16.07.2008 в 16:34)   письмо автору
 
   для: Gangster   (16.07.2008 в 16:02)
 

array_unique($array) - выбирает из массива только уникальные значения

   
 
 автор: Gangster   (16.07.2008 в 16:37)   письмо автору
 
   для: Giga   (16.07.2008 в 16:34)
 

Спасибо большое. Попробую

   
 
 автор: GeorgeIV   (16.07.2008 в 16:39)   письмо автору
 
   для: Gangster   (16.07.2008 в 16:02)
 

а у тебя строка не вида
<a href="URL">URL</a>

?Приведи пример строки

   
 
 автор: Giga   (16.07.2008 в 16:51)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 16:39)
 

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


$text = file('1.txt');
foreach ($text as $line)
{

if (preg_match("/http:+[^>]+\.mp4/", $line, $match)) 

$array[] = $match[0]."<br>"; 
}
$array = array_unique($array);
foreach ($array as $line)
{
echo  " $line<br>"; 
}

Крутые, образованные программисты тут конечно меня засмеют что через два цикла пропустил =))
Разберись с своей регуляркой.

   
 
 автор: GeorgeIV   (16.07.2008 в 16:53)   письмо автору
 
   для: Giga   (16.07.2008 в 16:51)
 

Только это не ко мне :-)

Но если знать, что у человека на входе, может и проще все будет.

   
 
 автор: Giga   (16.07.2008 в 16:58)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 16:53)
 

Ну так дай кусочек своего file.txt для примера, если в нем идет дубль строк то можно сразу после

$text = file('1.txt'); 
$array = array_unique($text); 

Запускать в один цикл

   
 
 автор: Giga   (16.07.2008 в 17:00)   письмо автору
 
   для: Giga   (16.07.2008 в 16:58)
 

Внутренности и ключи в массиве удобно при разработке просмотреть через

$text = file('1.txt');  
$array = array_unique($text);
echo var_dump($array);

Оценить что там за бардак и что нужно выводить, а уж после формировать цикл и вывод по ключам

   
 
 автор: GeorgeIV   (16.07.2008 в 17:07)   письмо автору
 
   для: Giga   (16.07.2008 в 16:58)
 


<?php
$text 
explode("\n","".
"a href='http://blip.tv/file/get/RichieB-wellingtonBotanicalGardens254.mp4'> ".
"http://blip.tv/file/get/RichieB-wellingtonBotanicalGardens254.mp4 </a>\n".
"a href='http://blip.tv/file/get/RichieB-fantailPiwakawaka644.mp4> ".
"http://blip.tv/file/get/RichieB-fantailPiwakawaka644.mp4 </a>\n".
"a href='http://blip.tv/file/get/RichieB-rimu887.mp4> ".
"http://blip.tv/file/get/RichieB-rimu887.mp4</a>");
foreach (
$text as $line)
{

if (
preg_match_all("/http:+[^>]+\.mp4/"$line$match)) 

echo 
$match[0][0]."<br>"
}
?>

Это пример для случая, про который я спрашивал. Если знаешь, что на входе, можно проще добиваться результата. Но автор молчит.

   
 
 автор: Gangster   (16.07.2008 в 18:10)   письмо автору
 
   для: GeorgeIV   (16.07.2008 в 17:07)
 

Да-да. Именно такие входные данные, как ты описал в массиве.

   
 
 автор: Trianon   (16.07.2008 в 19:14)   письмо автору
 
   для: Gangster   (16.07.2008 в 18:10)
 

А что Вы ожидаете. У Вас каждый URL дважды встречается в строке.

   
Rambler's Top100
вверх

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