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

Форум PHP

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

 

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

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

тема: Удаление последней запятой
 
 автор: Poison   (30.10.2006 в 07:33)   письмо автору
 
 

Наверно сразу приведу скрипт а потом опишу проблемку=)

<?php
$dir 
'emails';
$file 'email.txt';

if (
file_exists($dir."/".$file)) {
    
$email = @file($dir."/".$file);
    if (!
count($email) <= 0) {
        for(
$i 0$i < (count($email)); $i++) {
            
$email[$i] = strtolower(trim($email[$i]));
            
$emails .= (!empty($email[$i])) ? ($email[$i]).(((count($email)) == ($i+1)) ? "" ", ") : "";
        }
    } else {
        echo 
"<b>Error:</b> File <font color='red'><b>".$file."</b></font> empty.";
    }
} else {
    echo 
"<b>Error:</b> File <font color='red'><b>".$file."</b></font> not found.";
}

echo 
$emails."\n";
?>

Скрипт читает каждую сточку из файла и выводит их через запятую=) Вчера дописывая его столкнулся лоб в лоб с такой проблемой что после последней строчки он тоже ставит запятую.
И ето есеснно:) он же скрипт!
Ну вродь решил ее. Все работает если последняя строка в файле не пробел=) а если else то запятая опять стоит в конце:)
Может кто подскажет чего ему еще надо?

   
 
 автор: ЯR   (30.10.2006 в 07:42)   письмо автору
 
   для: Poison   (30.10.2006 в 07:33)
 

А может сделать так:

<?php
$file 
file_get_contents($dir."/".$file);
$file trim($file);
$file str_replace("\n"", "$file);
print 
$file;
?>

   
 
 автор: Poison   (30.10.2006 в 07:48)   письмо автору
 
   для: ЯR   (30.10.2006 в 07:42)
 

Не такое не пойдет
файл такого содержания

z-poison@mail.ru
gogI@mail.ru

mail@bail.bu.com

fail.mail@mail.gail.ru

farites@mail.ru


А вывод такой


z-poison@mail.ru, gogi@mail.ru, mail@bail.bu.com, fail.mail@mail.gail.ru, farites@mail.ru


Ето если в конце файла нет пробелов.

А воть такой файл выводиться криво:


z-poison@mail.ru
gogI@mail.ru

mail@bail.bu.com

fail.mail@mail.gail.ru

farites@mail.ru



Воть так:


z-poison@mail.ru, gogi@mail.ru, mail@bail.bu.com, fail.mail@mail.gail.ru, farites@mail.ru,


Тость с запятой в конце...

   
 
 автор: ЯR   (30.10.2006 в 07:53)   письмо автору
 
   для: Poison   (30.10.2006 в 07:48)
 

ну тогда так:

<?php 
$file 
file_get_contents($dir."/".$file); 
$file trim($file); 
$file str_replace("\n\n""\n" ", $file); 
$file = str_replace("\n", "", $file); 
print 
$file
?>

   
 
 автор: tuder   (30.10.2006 в 07:54)   письмо автору
 
   для: Poison   (30.10.2006 в 07:33)
 

Вернуть скрипт в состояние:

> после последней строчки он тоже ставит запятую

После чего перед выводом добавить:


if (substr($emails, -1)==",") {$emails=substr_replace($emails, "", -1);}

   
 
 автор: Guest.   (30.10.2006 в 08:02)
 
   для: tuder   (30.10.2006 в 07:54)
 

Может так?

<?php
$file 
file($dir."/".$file);
echo 
implode(",\n"$file);
?>

   
 
 автор: Poison   (30.10.2006 в 08:09)   письмо автору
 
   для: Guest.   (30.10.2006 в 08:02)
 

Нет так не канает:) в файле есть пробелы

   
 
 автор: Poison   (30.10.2006 в 08:08)   письмо автору
 
   для: tuder   (30.10.2006 в 07:54)
 

Воть точно! чет я сам не допер=)) Спасибо!!!

   
Rambler's Top100
вверх

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