| |
Архив эхоконференции RU.PHP
- RU.PHP ------------------------------------------------------------- RU.PHP -
Msg : #10108 [514]
От : Alex Krasnyansky 2:461/444.5 29 августа 04, 22:11
Кому : Vladimir N Zaytcev 30 сентября 04, 01:01
Тема : Разорвать строку
-------------------------------------------------------------------------------
Hello Vladimir.
28 авг 04 14:53, you wrote to JokeR[FHC]:
>> Есть строка:
>> 127.0.0.1 - - [23/Jan/2004:18:22:56 +0300] "GET / HTTP/1.1" 500 644
>> Hадо разорвать ее на составляющие, а имеено
>> ip,?,?,date,query,answer,traf
>> split здесь явно не поможет.. понятно, что надо использовать
>> regexp. Помогите!
VZ> $str = '127.0.0.1 - - [23/Jan/2004:18:22:56 +0300] "GET / HTTP/1.1"
VZ> 500 644';
VZ> preg_match("/(\d+\.\d+\.\d+\.\d+) (.*?) (.*?) \[(.*?)\] \"(.*?)\"
VZ> (\d+) (\d+)/i", $str, $matches);
VZ> var_dump($matches);
кстати, вполне поможет и split без всяких регекспов.
$str = '127.0.0.1 - - [23/Jan/2004:18:22:56 +0300] "GET / HTTP/1.1" 500 644';
list($ip,$user,$server,$datetime,$grinv,$type,$zapros,$protocol,
$code,$bytes_out)=split($str," ");
далее останется отчистить (если надо) символы кавычки и квадратные скобки из
соответственных переменных.
собственно, кому как нравится :) Учитывая, что регекспы жрут намного больше
ресурсов, чем тот же list.
Alex
--- GoldED+ 1.1.5-030609 (WinNT 5.1.2600-Service_Pack_1 i686)
* Origin: Vivat! (2:461/444.5)
При переходе по баннеру - скидка 25% на первый месяц обслуживания!
 При переходе по баннеру - скидка 25% на первый месяц обслуживания!
|