PDA

Просмотр полной версии : Регулярка... Нужна помощь


_==wolf==_
07.09.2008, 12:54
$fp = fopen("icq.txt" "r")
for ($i=0; $i < "62"; $i++)
{
preg_match($icq,$fp,$pass); правильная регулярка тут
подключение к базе тут
$sql = 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('.$icq.', '.$pass.', \'1\', \'0\');';
}

я не разбираюсь в preg_match и забыл как подключиться к базе.
это не полный скрипт который берёт из файла icq.txt
строчку вида icq;pass делит на две переменные $icq и $pass и вставляет их в таблицу, потом берёт следующую строку и тд...
короче нужна правильная регулярка, и строка подключения к базе (это я тоже забыл)

вот вид icq.txt
icq;pass
icq;pass
icq;pass
icq;pass
...

a1ex
07.09.2008, 13:00
Идёт запись в файл или чтение?Или и то и другое?

NuR
07.09.2008, 13:02
<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname");
$fp = fopen("icq.txt", "r");

while (!feof($fp)) {
$s = fgets($fp);
$a = explode(";", $s);
$icq = mysql_real_escape_string($a[0]);
$pass = mysql_real_escape_string($a[1]);
$sql = 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES (' .
$icq . ', ' . $pass . ', \'1\', \'0\');';
mysql_query($sql);
}
mysql_close($link);
?>

fucker"ok
07.09.2008, 13:04
<?php
mysql_connect("localhost", "root", "123");
mysql_selectdb("prs-clan_icqbot");
$list = file('icq.txt');
for ($i = 0; $i < count($list); $i++)
{
if (preg_match("/^(\d+):(.+)$/i", $list[$i], $match))
{
$icq = $match[1];
$pass = $match[2];
$sql = 'INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('.$icq.', '.$pass.', \'1\', \'0\');';
mysql_query($sql);
}

}
?>


Накидал без проверки. Примерно так должно выглядеть. Если файл большой, то лучше считывать построчно, а не заганять все в массив как в моем примере.

_==wolf==_
07.09.2008, 15:30
спасибо огромное!

cylaaaan
07.09.2008, 15:51
<?
$db = mysql_connect("localhost","username","password");
mysql_select_db("icqbot",$db);
mysql_query("SET NAMES 'cp1251'");

$filename = "icq.txt";
$rel=@file_get_contents($filename);
$str = explode("\n",$rel);
foreach($str as $acc)
{
$auth = explode(";",$acc);
$uin = $auth[0];
$pw = $auth[1];
mysql_query("INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('".$uin."','".pw."','1','0')",$db);
}
?>

Doom123
07.09.2008, 18:04
<?
$db = mysql_connect("localhost","username","password");
mysql_select_db("icqbot",$db);
mysql_query("SET NAMES 'cp1251'");

$filename = "icq.txt";
$rel=file($filename);
foreach($rel as $acc)
{
$auth = explode(";",$acc);
$uin = $auth[0];
$pw = trim($auth[1]);
mysql_query("INSERT INTO `prs-clan_icqbot`.`icqlist` (`icq`, `pass`, `active`, `userid`) VALUES ('".$uin."','".pw."','1','0')",$db);
}
?>

cylaaaan
07.09.2008, 18:07
в качестве пароля icq, пробелы могут присутствовать :)

+toxa+
07.09.2008, 18:40
зачем делать
$auth = explode(";",$acc);
$uin = $auth[0];
$pw = trim($auth[1]);
если можно сделать просто
list($uin,$pw) = explode(";",$acc);

NuR
07.09.2008, 19:21
это вся соль пхп =) одно действие можно сделать по разному=)

n3m0
07.09.2008, 21:13
m[([0-9]{5,9}):(.+)]