Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Знатокам PHP

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [В Интернете] >> Знатокам PHP
Имя
Сообщение << Старые топики   Новые топики >>
Знатокам PHP - 2005-06-07 13:30:55   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Люди, пытаюсь создать свою собственную рассылку. Написал такой код:
$filename ="msg.txt"; //в файле написано: "Сообщение"
$file = fopen($filename,"r+");
$text1 = fread($file,filesize($filename));
fclose($file);

$spliter = "::";
$filename = "mail.txt"; //в файле написано: "mustsav@mail.ru::mustsav@mail.ru"

$file = fopen($filename,"r+");
$text = fgets($file);

$arg = explode($spliter,$text);
echo "Всего адресатов: " . count($arg) . "<br>";

$var = count($arg) - 1;
$i = 0;
do
{

mail("$arg[$i]","Тема сообщения","$text1");

}
while(++$i <= $var)

Но отправляется только одно сообщение, а не два!!!<BR>Помогите, кто знает!
Post #: 1
Знатокам PHP - 2005-06-07 15:33:32   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
:) …а если адресатов N, то отправится по N-1 адресам
зырь внемательней

посмотри начальные значения $i и $var и условие выхода из цикла
и чем отличаеца $i++ от ++$i
Post #: 2
Знатокам PHP - 2005-06-07 15:37:10   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Кол-во адресатов у меня прописано здесь:

$filename ="msg.txt"; //в файле написано: "Сообщение"
$file = fopen($filename,"r+");
$text1 = fread($file,filesize($filename));
fclose($file);

$spliter = "::";
$filename = "mail.txt"; //в файле написано: "mustsav@mail.ru::mustsav@mail.ru"

$file = fopen($filename,"r+");
$text = fgets($file);

$arg = explode($spliter,$text);
echo "Всего адресатов: " . count($arg) . "<br>";

$var = count($arg) - 1;
$i = 0;
do
{

mail("$arg[$i]","Тема сообщения","$text1");

}
while(++$i <= $var)

Переменная $var = count($arg) - 1
count($arg) - кол-во адресатов
вычитаем 1. Тут все правильно!!!
Post #: 3
Знатокам PHP - 2005-06-07 16:36:00   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
while(++$i <= $var)

до тех пор пока
$i = $i + 1;
$i <= $var;

т.е. сперва прибавляем, потом сравниваем

что бы сперва сравнивать а потом прибавить, юзай
$i++ <= $var
ну, или мона нестрого сравнивать
++$i < $var
ну, или тада count - 1 не нада
Post #: 4
Знатокам PHP - 2005-06-07 18:08:00   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Я недавно php изучаю. Если тебе не сложно, можешь рассказать по подробнее!!!

Буду очень рад!
Post #: 5
Знатокам PHP - 2005-06-08 02:06:16   
jEnizix

Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
КВАЧ, советую, купи себе книгу по ПХП и читай!
Post #: 6
Знатокам PHP - 2005-06-08 02:07:42   
jEnizix

Сообщений: 1797
Оценки: 0
Присоединился: 2004-12-30 11:03:50
Тока без обид, ок?
Post #: 7
Знатокам PHP - 2005-06-08 14:05:09   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
2 дженикс:
ты если книжку советуиш, то сразу говори какую. нынче стока разного гавна на прилавках лежит… обложка красивая, а как содержание посмотриш - навоз полный

2 КВАЧ
ну смари
++$i <= $var

операции инкремента ++$i и $i++ различаюца тем, что прибавление единицы прекомпилятором в первом случае происходит сразу при попадании на этот блок кода (на эту строчку), а во втором при выходе из этого блока (т.е. при переходе на следующую строчку кода)

т.е. для
{
++$i <= $var;
}
прекомпилятор разберет эту строчку так:
{
$i = $i + 1;
$i <= $var;
}

а для
{
$i++ <= $var;
}
так:
{
$i <= $var;
$i = $i + 1;
}

чуиш фишку? :)
Post #: 8
Знатокам PHP - 2005-06-09 22:17:18   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Всё, я понял!!! В первом варианте $i изменяется во время выполнения цикла, а во втором - после выхода из цикла!

СПАСИБО!!!
Post #: 9
Страниц:  [1]
Все форумы >> [В Интернете] >> Знатокам PHP







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.