Автор Тема: PHP ХЕЛП  (Прочитано 2744 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
PHP ХЕЛП
« : 14 Января 2002, 19:13:31 »
Люди вот решил свою скриптину переписать из перла на пхп и возникла одна проблема:
неважно каким методом но скрипту поступают данные в виде
"somescpit.cgi?name=vasya&name=kolya&name=petr " и т.д.
в перле получить все эти данные елементарно:
if ($ENV{\'REQUEST_METHOD\'} eq \'GET\'){$query=$ENV{\'QUERY_STRING\'};}
if ($ENV{\'REQUEST_METHOD\'} eq \'POST\'){sysread(STDIN,$query,$ENV{\'CONTENT_LENGTH\'});$method="post";}
@formfields=split(/&/,$query);
foreach(@formfields){   
                            if(/^name=(.*)/){push(@name,&urldecode($1))};
}
А как это реализовать на пхп понятия не имею, если не сложно кто знает ответ на данную загадку киньте плиз на мыло kex_net@mail.ru или по аське 89344507

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
PHP ХЕЛП
« Ответ #1 : 14 Января 2002, 19:23:10 »
вроде так

<?
$temparray explode("&"$QUERY_STRING);
while(list(, 
$val) = each($array)) {
   list(
$tempname$tempval) = explode("="$val);
   $
$tempname[] = urldecode($tempval);
}
?>


а вообще-то, например select, передает уже сразу массив в скрипт (а если будет get-метод, тогда урл будет такой ....script.php?name[]=jksdfh&name[]=sdfsdg&...)
« Последнее редактирование: 14 Января 2002, 19:30:44 от Britva »
Евгений aka Razor,

  • Гость
PHP ХЕЛП
« Ответ #2 : 14 Января 2002, 19:36:58 »
А если кроме массива передаются ещё какие-нить данные?

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
PHP ХЕЛП
« Ответ #3 : 14 Января 2002, 19:45:14 »
если передается не массив, то он просто будет из одного эл-та.
Евгений aka Razor,

  • Гость
PHP ХЕЛП
« Ответ #4 : 14 Января 2002, 20:05:02 »
Не знаю с чего ты это решил но всё равно спасибо за помошь
вот какой выход я нашел
while(list($key,$val) = each($temparray)) {
   list($tempname, $tempval) = explode("=", $val);
   if($tempname=="answer"){$answer[$i]=urldecode($tempval);++$i;}
#   print "$tempname ravno $tempval
";
}
Если не использовать $i в массив ничего не пихается :)

Блин однако в перле это проще реализовывается :)

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
PHP ХЕЛП
« Ответ #5 : 14 Января 2002, 20:17:29 »
все пихается, там специально $$ используется, т.е. записывается в переменную с именем, к-рое лежит в $tempname
Цитировать
Если не использовать $i в массив ничего не пихается  

такого не может быть. если url был такой:
...script.php?name=1&name=2&other=3
то будут следующие переменные: $name[0], $name[1], $other[0]

а почему не подходят обычные средства php, т.е. что в переменных то лежит?
Евгений aka Razor,

  • Гость
PHP ХЕЛП
« Ответ #6 : 15 Января 2002, 01:21:28 »
Ок....
Тут у меня беда небольшая ещё возникла:
$nechto-массив может иметь вид "1" а может "1:::2"
":::"  - разделитель
требо запхнуть все данные из $nechto уже разбив их в какой-либо другой массив

  • Гость
PHP ХЕЛП
« Ответ #7 : 15 Января 2002, 04:02:59 »
Всё, решил проблему

  • Гость
PHP ХЕЛП
« Ответ #8 : 15 Января 2002, 04:03:48 »
Теперь речь илдёт о регулярных выражениях как  сделать замену переменной если первые её 7 символов такие: "http://"
??????

  • Гость
И ещё вопрос туда же :)
« Ответ #9 : 15 Января 2002, 05:36:11 »
Существует ли оператор как в перле join?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28