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

Форум PHP

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

 

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

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

тема: Разделение масива с IP адрессами
 
 автор: LuxeMate   (16.12.2006 в 16:30)   письмо автору
 
 

Вот такой код есть к примеру


<?php
$vars 
= array();
$ips = array(
"127.0.0.1",
"85.115.119.9",
"217.199.103.121"
);
for(
$i=0;$i count($ips);$i++)
{
$var $ips[$i];
$patern "((\d+).(\d+).(\d+).(\d+))";
preg_match($patern$var$iparray);
}
?>


Вопрос: "Как циклом вывести первые цифры IP адрессов?"
А то у меня получается что первые цифры это $iparray[1] а в цикле получется ерунда вроде $iparray[1][$i] - можно этого избежать?
Чтоб было примерно так:

127
85
217

Заранее спасибо!

PS. Разбивать по другому нельзя...!

   
 
 автор: Unkind   (16.12.2006 в 17:02)   письмо автору
 
   для: LuxeMate   (16.12.2006 в 16:30)
 


<?php
$array 
= array(
"127.0.0.1"
"85.115.119.9"
"217.199.103.121"
);

for(
$i 0$i count($array); $i++)
{
list(
$x) = explode("."$array[$i]);
echo(
$x."<br />\n");
}
?>

   
 
 автор: LuxeMate   (16.12.2006 в 17:15)   письмо автору
 
   для: Unkind   (16.12.2006 в 17:02)
 

спасибо конечно,но вам слова PS. Разбивать по другому нельзя...! не о чем не говорят?Вроде по русски написано...
Хорошо зделаем проще...вот так


<?php
$vars 
= array();
$ips = array(
"127.0.0.1 -- [15/12/2006:15:30:12]",
"85.115.119.9 -- [15/12/2006:15:30:12]",
"217.199.103.121 -- [15/12/2006:15:30:12]"
);
for(
$i=0;$i count($ips);$i++)
{
$var $ips[$i];
$patern "((\d+).(\d+).(\d+).(\d+))";
preg_match($patern$var$iparray);
}
?>


А это уже не так просто....как это осуществить?
Я бы и сам от explode не отказался....просто тут нада не на 1 символ резать..

   
 
 автор: Unkind   (16.12.2006 в 17:19)   письмо автору
 
   для: LuxeMate   (16.12.2006 в 17:15)
 

Значит надо понятнее писать. Например: "Разбивать можно только с помощью регулярных выражений".
А мой код справится и со вторым Вашим примером.

   
 
 автор: LuxeMate   (16.12.2006 в 17:22)   письмо автору
 
   для: Unkind   (16.12.2006 в 17:19)
 

А потом мне нада будет разрезать и дату и время и ещё много чего...так что я сомневаюсь что второй пример можно так разбить...
Разбить не беда....я не знаю как вывести в цикле все $iparray[1]???
Еще предложения есть?

   
 
 автор: LuxeMate   (16.12.2006 в 18:01)   письмо автору
 
   для: LuxeMate   (16.12.2006 в 17:22)
 

Что? Так сложно что ли?

   
 
 автор: kasmanaft   (16.12.2006 в 18:13)   письмо автору
 
   для: LuxeMate   (16.12.2006 в 18:01)
 

Да нет ... совсем не сложно, если я правильно понял:

* * * * * * *
for($i=0;$i < count($ips);$i++) 

$var = $ips[$i]; 
$patern = "((\d+).(\d+).(\d+).(\d+))"; 
preg_match($patern, $var, $iparray); 
echo $iparray[1]."<br>";

   
 
 автор: Trianon   (16.12.2006 в 18:09)   письмо автору
 
   для: LuxeMate   (16.12.2006 в 16:30)
 

echo intval($iparray[1][$i]);

   
 
 автор: LuxeMate   (16.12.2006 в 18:24)   письмо автору
 
   для: Trianon   (16.12.2006 в 18:09)
 

Ага,СПАСИБО))

   
Rambler's Top100
вверх

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