IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   php+Mysql трабл (https://www.imho.ws/showthread.php?t=64356)

dr-evil 16.07.2004 14:31

php+Mysql трабл
 
Есть файлик содержит кучку записей вида TCP_MISS/200 и т.п.
т.е. строка/код
Надо занести эти данные в разные колонки таблицы.
используется на данный момент, но это не есть гут - fscanf($fp,"%s")
всякие вариации вида // \\ /\ \/ - не прокатили
php 4.3.7 mysql 4.0-какой-то

Merlin Cori 16.07.2004 16:02

а разделитель полей? чем отделяется строка от кода?

dr-evil 16.07.2004 21:42

TCP_MISS/200 и т.п.
cтрока/код
разделитель /

Merlin Cori 16.07.2004 22:18

соответственно в тексте / не встречается....
угу, сейчас помыслим :)

так, получилось следующее:
если я все правильно понял, то исходные данные имеют примерно следующий вид:
Код:

tcp1/123
tcp2/456
tcp3/789
tcp4/012
tcp5/345

ну и соответственно скрипт:

Код:

<?

        $conn_id=mysql_connect("localhost","root","");
        mysql_select_db("test",$conn_id);
       
        $file_name="a.log";
       
        if(!$s=file_exists($file_name))
        {
          echo "Файл за $file_name не найден";
          return();
        }
        clearstatcache (void);
        if(!$r=fopen($file_name,"r"))
        {
          echo "Ошибка открытия файла $file_name";
          return();
        }

        while(!feof($r))
        {
        $str=fgets($r);
        $str=trim($str);
        if(strlen($str)>1)
        {
        list($str,$code)=split("/",$str);
        $query="insert into t1 (str, code) values ('".$str."','".$code."')";
        $result=mysql_query($query);
        }
        }
        fclose($r);
        mysql_close($conn_id);
?>

база test
таблица t1 имеет вид:
3 поля
id
str
code


это для phpmyadmin

Код:

CREATE TABLE `t1` (
  `id_t` int(3) NOT NULL auto_increment,
  `str` varchar(50) NOT NULL default '',
  `code` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id_t`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;


dr-evil 17.07.2004 18:27

в том то все и дело, что в тексте могут встречаться символы /

Merlin Cori 17.07.2004 20:39

в тексте строки или кода? брось в приват или на мейл конкретный пример строки лога....

dr-evil 18.07.2004 00:10

сейчас могу тока на память... это собсно лог сквида ;)
вид у него примерно такой
время (float) длительность (int) client_ip (txt) result (тот самый кусок вида TCP_denied/407) url (адрес содержит / 100пудов) и еще поля типа имя юзера (домен/юзер - соотв txt)

Merlin Cori 18.07.2004 15:41

ок... завтра на работе посмотрю. сквид стоит, логи должны быть....:)

Merlin Cori 23.07.2004 11:22

Вложений: 1
ну смотри, если пойдет, то причешу до человеческого вида :)

V@nya 23.07.2004 13:56

А чё такое сквид?

Merlin Cori 23.07.2004 13:57

V@nya squid. линуксовый кэширующий прокси


Часовой пояс GMT +4, время: 17:16.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.