| |
|
|
| | Здравствуйте....
Вот у меня допустим есть такой код:
case $command[0]:
$icq->sendMessage($msg['from'], file_get_contents($filer[0])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[1]:
$icq->sendMessage($msg['from'], file_get_contents($filer[1])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[2]:
$icq->sendMessage($msg['from'], file_get_contents($filer[2])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[3]:
$icq->sendMessage($msg['from'], file_get_contents($filer[3])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[4]:
$icq->sendMessage($msg['from'], file_get_contents($filer[4])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[5]:
$icq->sendMessage($msg['from'], file_get_contents($filer[5])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[6]:
$icq->sendMessage($msg['from'], file_get_contents($filer[6])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[7]:
$icq->sendMessage($msg['from'], file_get_contents($filer[7])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[8]:
$icq->sendMessage($msg['from'], file_get_contents($filer[8])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[9]:
$icq->sendMessage($msg['from'], file_get_contents($filer[9])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[10]:
$icq->sendMessage($msg['from'], file_get_contents($filer[10])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
|
Скажите пожалуйста как мне сократить его, чтобы ничего не испортилось??? | |
| |
|
|
| |
|
|
| |
для: SnooPI
(12.04.2007 в 19:35)
| | | этот код начинается со слова switch | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.04.2007 в 19:39)
| | | Напишите что у вас в операторе указано: switch (???) ?
могу предложить такой вариант:
<?
$key = array_search ($search, $command);
if ($key !== false) {
$file = file_get_contents($files[$key]);
$icq -> sendMessage ($msg["from"], $file."\r\n".$razd."\r\n".$reklama[array_rand($reklama)];
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: localGhost
(13.04.2007 в 04:06)
| | | Верно. А еще лучше - вывернуть наизнанку массив $command, проиндексировав его командами. | |
| |
|
|
| |
|
|
| |
для: SnooPI
(12.04.2007 в 19:35)
| | | - | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(12.04.2007 в 19:46)
| | | Можно было бы набросать что-то вроде
foreach($command as $key => $val)
if($xxx == $val)
$icq->sendMessage($msg['from'],
file_get_contents($filer[$key])."\r\n$razd\r\n".$reklama[array_rand($reklama)]);
|
если бы знать, откуда взять $xxx (параметр switch())
> $icq->sendMessage($msg['from'], file_get_contents($filer[$command[0]])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
Ваш же код, как минимум, путает ключи и значения массива $command
----PS
Ценность скрипта сомнительна в высшей степени. Не поверю, что кто-то согласится терпеть мессенджер, столь навязчиво сующий рекламу, в то время, когда свободных средств коммуникации - пруд пруди. | |
| |
|
|
| |
|
|
| |
для: Trianon
(12.04.2007 в 20:02)
| | | Да дело не в рекламе :)
Просто на каждую команду, кв конце 1 строчка рекламы....
А по теме:
Не понимаю, куда вы запрятали команду case если она тоже должна быть??
Вообще я фореач недавно выучилд...объясните поподробнее | |
| |
|
|
| |
|
|
| |
для: SnooPI
(13.04.2007 в 15:59)
| | | Нет команды case. case это метка внутри оператора switch. Который Вы так и не показали, хотя Вас об этом спрашивали.
Одни и те же действия можно сделать, используя разные инструменты языка.
Вчастности последовательный поиск по массиву с помощью оператора switch (а вовсе не команда case) ,более естественно выполняется вызовом функции array_search(). | |
| |
|
|
| |
|
|
| |
для: Trianon
(13.04.2007 в 16:18)
| | | Вот =)
switch (strtolower($msg['message'])) {
case $command[0]:
$icq->sendMessage($msg['from'], file_get_contents($filer[0])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[1]:
$icq->sendMessage($msg['from'], file_get_contents($filer[1])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[2]:
$icq->sendMessage($msg['from'], file_get_contents($filer[2])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[3]:
$icq->sendMessage($msg['from'], file_get_contents($filer[3])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[4]:
$icq->sendMessage($msg['from'], file_get_contents($filer[4])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[5]:
$icq->sendMessage($msg['from'], file_get_contents($filer[5])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[6]:
$icq->sendMessage($msg['from'], file_get_contents($filer[6])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[7]:
$icq->sendMessage($msg['from'], file_get_contents($filer[7])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[8]:
$icq->sendMessage($msg['from'], file_get_contents($filer[8])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[9]:
$icq->sendMessage($msg['from'], file_get_contents($filer[9])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
case $command[10]:
$icq->sendMessage($msg['from'], file_get_contents($filer[10])."\r\n".$razd."\r\n".$reklama[array_rand($reklama)]);
break;
}
|
| |
| |
|
|
| |
|
|
| |
для: SnooPI
(13.04.2007 в 16:22)
| | | А как задается массивы $command и $filter? | |
| |
|
|
| |
|
|
| |
для: Trianon
(13.04.2007 в 17:24)
| | |
$command = array();
$filer = array();
foreach($commands as $f)
list($command[], $filer[]) = explode(' ', trim($f));
|
Вот =) | |
| |
|
|
| |
|
|
| |
для: SnooPI
(13.04.2007 в 18:53)
| | | Ну вот если переделать его на
$cmdfilter = array();
foreach($commands as $f)
{
list($c, $f) = explode(' ', trim($f));
$cmd_filter[$c] = $f;
}
|
то код отправки становится таким:
$filter = @$cmdfilt[strtolower($msg['message'])];
if($filter !== null)
$icq->sendMessage($msg['from'],
file_get_contents($filer)."\r\n$razd\r\n".$reklama[array_rand($reklama)]);
|
| |
| |
|
|