нужна помощь... есть код вида: PHP: if(trim($_POST['email']) == '') { $hasError = true; } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); } нужно сделать так, чтобы проверка позволяла вводить ещё и номера телефонов, т.е. любые числовые значения с "плюсом", например +79992223333
Люди, спасайте. Есть файл, в нем 8000 строк. Как его разбить, по 1000 ? и записать в файлы ? Т.е 1000-1.txt 1000-2.txt и т д. Помогите реализовать, с меня плюсы, если это так важно. Спасибо.
Adio http://php.net/fopen, http://php.net/fgets, http://ru2.php.net/manual/en/control-structures.if.php
Спасибо, я записить и чтение знаю, я не знаю и как посчитать строки тоже знаю. Единсвенное где не могу додуматься, к пример К примеру делаю условие, если строка $str1 == "200" то прекращаем работу и записываем в файл Но, если мне нужно делать операцию повторно то те 1000 строк они будут в файле. а мне нужно что бы они удалялись оттуда.. Не знаю вообщем, думаю для знающего хорошо пхп не составит труда это сделать.. я просто в ЛОГИКЕ запутался не много того и не могу сделать..
Adio, может и нубско но по другому на пока не придумал PHP: <? $file = file_get_contents("твой файл") preg_match_all("/(.*?)\n/",$file , $pars) \\ незнаю что в нём там записано сделаю пока так $i ="0"; foreach($pars[0] as $text) { if($i <= 1000) { $file_two = "1000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 2000) { $file_two = "2000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 3000) { $file_two = "3000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 4000) { $file_two = "4000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 5000) { $file_two = "5000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 6000) { $file_two = "6000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 7000) { $file_two = "7000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } elseif($i <= 8000) { $file_two = "8000.txt"; $s = fopen($file_two, "a+"); fwrite($s, $text."\n\r"); fclose($s); } $i++; } ?>
Adio PHP: <?php $fp = fopen('in.txt', "rb"); for ($j = 1; $j <= 8; $j++) { $f = fopen("1000-$j.txt", "wb"); for ($i = 1; $i <= 1000; $i++) { fwrite($f, trim(fgets($fp))."\r\n"); } fclose($f); } fclose($fp); ?> vssh PHP: <?php if (!preg_match("#^\+\d{11}$#", $str)) echo "false"; else echo "true"; ?> И функция eregi устарела используйте preg_match. Compton, очевидно, что вы парсите выдачу поисковой системы bing.com, но не ясно, каким образом вы это делаете, что получаются массивы такого вида!? Может данную проблему можно решить на самом этапе парсинга, не создавая лишние костыли?
Не создавать такой массив не получается,т.к. до этого приходится некоторые его части пропускать через array_walk и циклы. Но я уже решил проблему.
не работает, или я неправильно использую как изменить код? PHP: if(trim($_POST['email']) == '') { $hasError = true; } else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) { $hasError = true; } else { $email = trim($_POST['email']); }
доброго времени суток есть проблема, которая заключается в том, что есть 21 сервер с базами данных, на которые требуется отправлять однотипные запросы MSSQL (ну или любая база данных не важно) проблема заключается в использовании цикла + функции mssql_query, которая подразумевает как отправку запроса, так и получение результата дело в том что запросы бывают достаточно тяжелыми, и проходить по одной базе могут минут 5, и получается что весь процесс занимает при использовании цикла минут 30 прошу подсказать, возможно ли как то сделать так, чтобы PHP отправлял запрос, не ждал ответ, переключался к другому серверу, а после прогона всех возвращался для сбора результатов? может быть с помощью PDO или PEAR? заранее спасибо большое з.ы. добавление или редактирование stored процедур запрещено разработчиками базы данных
подскажите где найти мануал, кроме гугла, по написанию инжектов от а до я, обращаюсь к знающим людям, сильно не пинайте
Уважаемые пользователи форума античат. Помогите пожалуйста по следующему вопросу: Есть чат, написанный на php, нужно добавить защиту от флуда - в виде задержки между отправкой сообщения в пару секунд, а также в случае быстрой отправки сообщений в чат, нужно добавить надпись, что "Флуд запрещён". Пожалуйста подскажите, как это реализовать или может ткните носом туда, где такое уже реализовано, т.к. моих знаний пока не хватает для решения данной задачи. Заранее спс.
Ifrit http://php.net/mssql_query http://php.net/mssql_fetch_batch Параметр batch_size вроде как позволяет получать N записей за раз, что в общем то позволит отправлять запросы асинхронно. Какого рода задержки то возникают?
Да нет, задержки то как раз и надо сделать. Что то типа: Сообщение №1 задерка 2-3 секунды Сообщение №2 Имеется ввиду от одного пользователя.
SaintDemon я отвечал не вам. А теперь вам - храните время последней отправки в сессии и если текущее время минус сохраненное меньше желаемого - никуда ничего не посылать
ну проблемы такого рода что сервера с базами данных находятся достаточно далеко от моего сервера PHP и запросы идут долго по времени и получается что идет цикл с перебором серверов и тратится время 7 мин+ 5 мин+ 2 мин+ ..... итого 30 минут в идеале очень бы хотелось чтобы время всего прогона не превышала времени самого долгого ответа т.е. 7 минут насколько я понял mssql_fetch_batch позволяет работать уже с результатом, т.е. к примеру нарезать ответ на части или я что то не так понял? мне очень нужно как бы разбить функцию mssql_query на две части query и get result кажется это невозможно...
Code: <? class pop3_class { var $hostname=""; var $port=110; var $connection=0; var $state="DISCONNECTED"; var $greeting=""; var $must_update=0; Function GetLine() { for($line=""; { if(feof($this->connection)) return(0); $line.=fgets($this->connection,100); $length=strlen($line); if($length>=2 && substr($line,$length-2,2)=="\r\n") return(substr($line,0,$length-2)); } } Function PutLine($line) { return(fputs($this->connection,"$line\r\n")); } Function OpenConnection() { if($this->hostname=="") return("2 it was not specified a valid hostname"); switch(($this->connection=fsockopen($this->hostname,$this->port))) { case -3: return("-3 socket could not be created"); case -4: return("-4 dns lookup on hostname \"$hostname\" failed"); case -5: return("-5 connection refused or timed out"); case -6: return("-6 fdopen() call failed"); case -7: return("-7 setvbuf() call failed"); default: return(""); } } Function CloseConnection() { if($this->connection!=0) { fclose($this->connection); $this->connection=0; } } Function Open() { if($this->state!="DISCONNECTED") return("1 a connection is already opened"); if(($error=$this->OpenConnection())!="") return($error); $this->greeting=$this->GetLine(); if(GetType($this->greeting)!="string" || strtok($this->greeting," ")!="+OK") { $this->CloseConnection(); return("3 POP3 server greeting was not found"); } $this->greeting=strtok("\r\n"); $this->must_update=0; $this->state="AUTHORIZATION"; return(""); } Function Close() { if($this->state=="DISCONNECTED") return("no connection was opened"); if($this->must_update) { if($this->PutLine("QUIT")==0) return("Could not send the QUIT command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get quit command response"); if(strtok($response," ")!="+OK") return("Could not quit the connection: ".strtok("\r\n")); } $this->CloseConnection(); $this->state="DISCONNECTED"; return(""); } Function Login($user,$password,$apop) { if($this->state!="AUTHORIZATION") return("connection is not in AUTHORIZATION state"); if($apop) { if($this->PutLine("APOP $user ".md5($this->greeting.$password))==0) return("Could not send the APOP command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get APOP login command response"); if(strtok($response," ")!="+OK") return("APOP login failed: ".strtok("\r\n")); } else { if($this->PutLine("USER $user")==0) return("Could not send the USER command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get user login entry response"); if(strtok($response," ")!="+OK") return("User error: ".strtok("\r\n")); if($this->PutLine("PASS $password")==0) return("Could not send the PASS command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get login password entry response"); if(strtok($response," ")!="+OK") return("Password error: ".strtok("\r\n")); } $this->state="TRANSACTION"; return(""); } Function Statistics($messages,$size) { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($this->PutLine("STAT")==0) return("Could not send the STAT command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get the statistics command response"); if(strtok($response," ")!="+OK") return("Could not get the statistics: ".strtok("\r\n")); $messages=strtok(" "); $size=strtok(" "); return(""); } Function ListMessages($message,$unique_id) { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($unique_id) $list_command="UIDL"; else $list_command="LIST"; if($this->PutLine("$list_command $message")==0) return("Could not send the $list_command command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get message list command response"); if(strtok($response," ")!="+OK") return("Could not get the message listing: ".strtok("\r\n")); if($message=="") { for($messages=array(); { $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get message list response"); if($response==".") break; $message=intval(strtok($response," ")); if($unique_id) $messages[$message]=strtok(" "); else $messages[$message]=intval(strtok(" ")); } return($messages); } else { $message=intval(strtok(" ")); return(intval(strtok(" "))); } } Function RetrieveMessage($message,$headers,$body,$lines) { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($lines<0) { $command="RETR"; $arguments="$message"; } else { $command="TOP"; $arguments="$message $lines"; } if($this->PutLine("$command $arguments")==0) return("Could not send the $command command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get message retrieval command response"); if(strtok($response," ")!="+OK") return("Could not retrieve the message: ".strtok("\r\n")); for($headers=$body=array(),$line=0;;$line++) { $response=$this->GetLine(); if(GetType($response)!="string") return("Could not retrieve the message"); switch($response) { case ".": return(""); case "": break 2; default: if(substr($response,0,1)==".") $response=substr($response,1,strlen($response)-1); break; } $headers[$line]=$response; } for($line=0;;$line++) { $response=$this->GetLine(); if(GetType($response)!="string") return("Could not retrieve the message"); switch($response) { case ".": return(""); default: if(substr($response,0,1)==".") $response=substr($response,1,strlen($response)-1); break; } $body[$line]=$response; } return(""); } Function DeleteMessage($message) { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($this->PutLine("DELE $message")==0) return("Could not send the DELE command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get message delete command response"); if(strtok($response," ")!="+OK") return("Could not delete the message: ".strtok("\r\n")); $this->must_update=1; return(""); } Function ResetDeletedMessages() { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($this->PutLine("RSET")==0) return("Could not send the RSET command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not get reset deleted messages command response"); if(strtok($response," ")!="+OK") return("Could not reset deleted messages: ".strtok("\r\n")); $this->must_update=0; return(""); } Function IssueNOOP() { if($this->state!="TRANSACTION") return("connection is not in TRANSACTION state"); if($this->PutLine("NOOP")==0) return("Could not send the NOOP command"); $response=$this->GetLine(); if(GetType($response)!="string") return("Could not NOOP command response"); if(strtok($response," ")!="+OK") return("Could not issue the NOOP command: ".strtok("\r\n")); return(""); } }; I'm having this problem. Code: Parse error: syntax error, unexpected '{', expecting ';' in /home/dark01/public_html/POP.php on line 15