Code: <style> table.calendar { border-left:1px solid #999; } tr.calendar-row { } td.calendar-day { min-height:80px; font-size:11px; position:relative; } * html div.calendar-day { height:80px; } td.calendar-day:hover { background:#eceff5; } td.calendar-day-np { background:#eee; min-height:80px; } * html div.calendar-day-np { height:80px; } td.calendar-day-head { background:#ccc; font-weight:bold; text-align:center; width:120px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; } div.day-number { padding:5px; color:#1C1C1C; font-weight:bold; font-size: 25px; font-family: Arial Black; float:right; margin:-5px -5px 0 0; width:100%; text-align:center; } td.calendar-day, td.calendar-day-np { width:120px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; } td.calendar-day-weekend { min-height:80px; font-size:11px; position:relative; background-color: #ffc0c0;} // this line added </style> <?php /* Функция генерации календаря */ function draw_calendar($month,$year){ /* Начало таблицы */ $calendar = '<table cellpadding="0" cellspacing="0" class="calendar">'; /* Заглавия в таблице */ $headings = array('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье'); $calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>'; /* необходимые переменные дней и недель... */ $running_day = date('w',mktime(0,0,0,$month,1,$year)); $running_day = $running_day - 1; $days_in_month = date('t',mktime(0,0,0,$month,1,$year)); $days_in_this_week = 1; $day_counter = 0; $dates_array = array(); $starting_monthly_position = $running_day; // this line added /* первая строка календаря */ $calendar.= '<tr class="calendar-row">'; /* вывод пустых ячеек в сетке календаря */ for($x = 0; $x < $running_day; $x++): $calendar.= '<td class="calendar-day-np"> </td>'; $days_in_this_week++; endfor; /* дошли до чисел, будем их писать в первую строку */ for($list_day = 1; $list_day <= $days_in_month; $list_day++): if(($list_day+$starting_monthly_position)%7 == 0 or ($list_day+$starting_monthly_position+1)%7 == 0): // this line added $calendar.= '<td class="calendar-day-weekend">'; // this line added else: // this line added $calendar.= '<td class="calendar-day">'; // this line added endif; // this line added; That;s it. /* Пишем номер в ячейку */ if ($list_day==date('d')) $calendar.= '<div class="day-number" style="color:#CD0000">' . $list_day . '</div>'; else $calendar.= '<div class="day-number">' . $list_day . '</div>'; /** ЗДЕСЬ МОЖНО СДЕЛАТЬ MySQL ЗАПРОС К БАЗЕ ДАННЫХ! ЕСЛИ НАЙДЕНО СОВПАДЕНИЕ ДАТЫ СОБЫТИЯ С ТЕКУЩЕЙ - ВЫВОДИМ! **/ $calendar.= str_repeat('<p> </p>',2); $calendar.= '</td>'; if($running_day == 6): $calendar.= '</tr>'; if(($day_counter+1) != $days_in_month): $calendar.= '<tr class="calendar-row">'; endif; $running_day = -1; $days_in_this_week = 0; endif; $days_in_this_week++; $running_day++; $day_counter++; endfor; /* Выводим пустые ячейки в конце последней недели */ if($days_in_this_week < 8): for($x = 1; $x <= (8 - $days_in_this_week); $x++): $calendar.= '<td class="calendar-day-np"> </td>'; endfor; endif; /* Закрываем последнюю строку */ $calendar.= '</tr>'; /* Закрываем таблицу */ $calendar.= '</table>'; /* Все сделано, возвращаем результат */ return $calendar; } /* СПОСОБ ПРИМЕНЕНИЯ */ //месяцы и недели на русском function rdate($param, $time=0) { if(intval($time)==0)$time=time(); $MN=array('Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'); $MonthNames[]=$MN[date('n',$time)-1]; $MN=array('Воскресенье','Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', ''); $MonthNames[]=$MN[date('w',$time)]; $arr[]='M'; $arr[]='N'; if(strpos($param,'M')===false) return date($param, $time); else return date(str_replace($arr,$MonthNames,$param), $time); } //месяцы и недели на русском $mesjac = date('n'); $god = date('Y'); echo '<h2 style="text-align:center; font-family: Arial Black; font-size: 19px; color: #1E90FF;">Сегодня '.rdate('j M Y года. N. H:i').'</h2>'; echo draw_calendar($mesjac,$god); ?>
Вот код простого счётчика <?php if(!file_exists("count.txt")) {$counter=fopen("count.txt", "a");} else {$counter=fopen("count.txt", "r+");} $auf=fgets($counter, 100); $auf=$auf+1; rewind($counter); fputs($counter, $auf); fclose($counter); echo $auf; ?> Решил узнать, что будет, если убрать rewind() т.е. <?php if(!file_exists("count.txt")) {$counter=fopen("count.txt", "a");} else {$counter=fopen("count.txt", "r+");} $auf=fgets($counter, 100); $auf=$auf+1; fputs($counter, $auf); fclose($counter); echo $auf; ?> Как ожидал я. При первом запросе будет 1, при втором запросе будет 12, при третьем 1213, при четвёртом 121314, ну понятно... Как вышло. При первом запросе 1, при втором 2(????), при третьем вообще 13, при четвёртом 1214 Почему так? Почему он так обработал второй запрос, а последующие запросы он обрабатывал как я хотел, только уменьшая предыдущую пару на 1 (например в 4 запросе 1214, а не 1314). Он же должен добавлять просто число+1 к уже записанной строчке чисел, т.е. записанное число+записанное число+1?
Кривой древний код писанный для пхп4 боюсь представить сколько лет назад. Сейчас для таких мелочей все используют file_get_contents и file_put_contents вместо поблочной записи/чтения. Или вообще классы из фреймворков. Потому что мануалы надо читать. http://php.net/manual/ru/function.rewind.php У тебя из файла читается первая и единственная строка. И после вызова fgets указатель чтения/записи уже стоит в конце файла. Поэтому дальнейшая запись будет добавлять данные в текст. Rewind сдвигает указатель на 0 позицию и поэтому новые данные накладываются на старые.
Я и сам понимаю, что накладывается, я не понимаю, почему так накладывается. Первый результат 2, второй 13, третий 1214? Почему уменьшает предыдущее значение на 1 и поч второе значение 2?
День добрый,использую класс для работы с curl Code: <?php //***************************************************// // // // Class for cURL // // ********************************************* // // Author: Stsepanchuk Ruslan // // ********************************************* // // Blog: swblog.ru // // // //***************************************************// class curl { var $ch; var $httpget = ''; var $head = ''; var $postparams = array (); var $httpheader = array (); var $cookie = array (); var $proxy = ''; var $proxy_user_data = ''; var $verbose = 0; var $referer = ''; var $autoreferer = 0; var $writeheader = ''; var $agent = 'Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0'; var $url = ''; var $followlocation = 1; var $returntransfer = 1; var $ssl_verifypeer = 0; var $ssl_verifyhost = 0; var $sslcert = ''; var $sslkey = ''; var $cainfo = ''; var $cookiefile = ''; var $timeout = 0; var $connect_time = 0; var $encoding = 'gzip,deflate'; var $interface = ''; function __construct (){ $this->ch = curl_init(); $this->set_httpheader(array('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3','Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7')); } function get ($url){ $this->url = $url; return $this->exec(); } function post ($url, $postparams, $enctype = false){ $this->url = $url; if (!$enctype) { $this->postparams = $postparams; } else { $this->postparams = array (); $params = explode("&", $postparams); for($i = 0; $i < count($params); $i++) { list($name, $value) = explode("=", $params[$i]); $this->postparams[$name] = $value; } } return $this->exec(); } function set_httpget ($httpget){ $this->httpget = $httpget; } function set_referer ($referer){ $this->referer = $referer; } function set_autoreferer ($autoreferer){ $this->autoreferer = $autoreferer; } function set_useragent ($agent){ $this->agent = $agent; } function set_cookie (){ preg_match_all('/Set-Cookie: (.*?)=(.*?);/i', $this->head, $matches, PREG_SET_ORDER); for ($i = 0; $i < count($matches); $i++) { if ($matches[$i][2] == 'deleted') { $this->delete_cookie($matches[$i][1]); } else { $this->cookie[$matches[$i][1]] = $matches[$i][2]; } } } function add_cookie ($cookie){ foreach ($cookie as $name => $value) { $this->cookie[$name] = $value; } } function delete_cookie ($name){ if (isset($this->cookie[$name])) unset($this->cookie[$name]); } function get_cookie (){ return $this->cookie; } function clear_cookie (){ $this->cookie = array (); } function set_httpheader ($httpheader){ $this->httpheader = $httpheader; } function clear_httpheader (){ $this->httpheader = array (); } function set_head ($head){ $this->head = $head; } function set_encoding ($encoding){ $this->encoding = $encoding; } function set_interface ($interface){ $this->interface = $interface; } function set_writeheader ($writeheader){ $this->writeheader = $writeheader; } function set_followlocation ($followlocation){ $this->followlocation = $followlocation; } function set_returntransfer ($returntransfer){ $this->returntransfer = $returntransfer; } function set_ssl_verifypeer ($ssl_verifypeer){ $this->ssl_verifypeer = $ssl_verifypeer; } function set_ssl_verifyhost ($ssl_verifyhost){ $this->ssl_verifyhost = $ssl_verifyhost; } function set_sslcert ($sslcert) { $this->sslcert = $sslcert; } function set_sslkey ($sslkey) { $this->sslkey = $sslkey; } function set_cainfo ($cainfo) { $this->cainfo = $cainfo; } function set_timeout ($timeout){ $this->timeout = $timeout; } function set_connect_time ($connect_time){ $this->connect_time = $connect_time; } function set_cookiefile ($cookiefile){ $this->cookiefile = $cookiefile; } function set_proxy ($proxy){ $this->proxy = $proxy; } function set_proxy_auth ($proxy_user_data){ $this->proxy_user_data = $proxy_user_data; } function set_verbose ($verbose){ $this->verbose = $verbose; } function get_error (){ return curl_errno($this->ch); } function get_location (){ $result = ''; if (preg_match("/Location: (.*?)\r\n/is", $this->head, $matches)) { $result = end($matches); } return $result; } function get_http_state (){ if (curl_getinfo($this->ch, CURLINFO_HTTP_CODE) == 200) { return true; } else { return false; } } function get_speed_download (){ return curl_getinfo($this->ch, CURLINFO_SPEED_DOWNLOAD); } function get_content_type (){ return curl_getinfo($this->ch, CURLINFO_CONTENT_TYPE); } function get_url (){ return curl_getinfo($this->ch, CURLINFO_EFFECTIVE_URL); } function join_cookie() { $tcookie = array (); foreach ($this->cookie as $key => $value) $tcookie[] = "$key=$value"; return join('; ', $tcookie); } function exec (){ curl_setopt($this->ch, CURLOPT_USERAGENT, $this->agent); curl_setopt($this->ch, CURLOPT_AUTOREFERER, $this->autoreferer); curl_setopt($this->ch, CURLOPT_ENCODING, $this->encoding); curl_setopt($this->ch, CURLOPT_URL, $this->url); curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION , $this->followlocation); curl_setopt($this->ch, CURLOPT_RETURNTRANSFER,$this->returntransfer); curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer); curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, $this->ssl_verifyhost); curl_setopt($this->ch, CURLOPT_HEADER, 1); curl_setopt($this->ch, CURLOPT_TIMEOUT, $this->timeout); curl_setopt($this->ch, CURLOPT_CONNECTTIMEOUT, $this->connect_time); curl_setopt($this->ch, CURLOPT_VERBOSE, $this->verbose); curl_setopt($this->ch, CURLOPT_POST, 0); if ($this->referer) curl_setopt($this->ch, CURLOPT_REFERER, $this->referer); if ($this->interface) curl_setopt($this->ch, CURLOPT_INTERFACE, $this->interface); if ($this->httpget) curl_setopt($this->ch, CURLOPT_HTTPGET, $this->httpget); if ($this->writeheader != '') curl_setopt($this->ch, CURLOPT_WRITEHEADER, $this->writeheader); if ($this->postparams) { curl_setopt($this->ch, CURLOPT_POST, 1); curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->postparams); } if ($this->proxy) curl_setopt($this->ch, CURLOPT_PROXY, $this->proxy); if ($this->proxy_user_data) curl_setopt($this->ch, CURLOPT_PROXYUSERPWD, $this->proxy_user_data); if ($this->cookie) curl_setopt($this->ch, CURLOPT_COOKIE, $this->join_cookie()); if (count($this->httpheader)) curl_setopt($this->ch, CURLOPT_HTTPHEADER, $this->httpheader); if ($this->sslcert) curl_setopt($this->ch, CURLOPT_SSLCERT, $this->sslcert); if ($this->sslkey) curl_setopt($this->ch, CURLOPT_SSLKEY, $this->sslkey); if ($this->cainfo) curl_setopt($this->ch, CURLOPT_CAINFO, $this->cainfo); if ($this->cookiefile) { curl_setopt($this->ch, CURLOPT_COOKIEFILE, $this->cookiefile); curl_setopt($this->ch, CURLOPT_COOKIEJAR, $this->cookiefile); } $response = curl_exec($this->ch); $this->set_head(substr($response, 0, curl_getinfo($this->ch, CURLINFO_HEADER_SIZE))); $response = substr($response, curl_getinfo($this->ch, CURLINFO_HEADER_SIZE)); $this->set_cookie(); $this->postparams = array (); return $response; } function __destruct (){ curl_close($this->ch); } } ?> хочу сделать авторизацию на один сайт,но сами параметры не передаются,авторизация через multipart/form-data при коде Code: <?php require_once 'curl.class.php'; $curl = new curl (); $send=$curl->get('https://letyshops.ru/user'); $pos = strpos($send,'logout'); if ($pos === false) { $postdata=array('mail'=>'login','pass'=>'password','op'=>''); $send=$curl->post('https://letyshops.ru/ajax/login2/ajax',$postdata); echo 'не найдено'; print_r($send); } else { echo 'найдено'; } передаётся только Code: POST /ajax/login2/ajax HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0 Host: letyshops.ru Accept-Encoding: gzip,deflate Cookie: uid=0; old_session=MZVsUw5k9nkxKB6gKSKi-Mm8ZyM5TX2z1KeAtFLIGbA; bui=0; SSESS5288efca5cc8ebc9d12b8cd700a1566b=MZVsUw5k9nkxKB6gKSKi-Mm8ZyM5TX2z1KeAtFLIGbA Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 Content-Length: 344 Expect: 100-continue Content-Type: multipart/form-data; boundary=----------------------------209c8d3994a2 весь вечер бьюсь,с другими сайтами всё нормально
как обрезать поддомен средствами php? есть http://m.site.ru/page.html надо чтобы стало http://site.ru/page.html или site.ru/page.html заранее спасибо :3
$subdomain = "http://m.site.ru/page.html"; $domain = substr($subdomain, strpos($subdomain, '.')+1); site.ru/page.html в $domain
Хелп народ нужна ваша помощь,в php почти дуб-дерево есть форма авторизации в админку но при вводе пароля стоит как я понял двухфакторная авторизация "Enter Authy Token" Вот сам форма PHP: if(isset($_POST['login'])){ if(!$_COOKIE['adminusername']){ if($_POST['username']){ setcookie("adminusername", $_POST['username'], time() + 3600); }else{ setcookie("adminusername", 'nouser'.date('mdHis'), time() + 3600); } } if(!empty($_POST['username']) && !empty($_POST['password'])){ if($_COOKIE['adminusername']){ unset($_COOKIE['adminusername']); } setcookie("adminusername", $_POST['username'], time() + 3600); $adminQuery = mysqli_query($GLOBALS['mydbi'],"select * from admin where username = '".mysqli_real_escape_string($GLOBALS['mydbi'],$_POST['username'])."' and status = 1"); if($admin = mysqli_fetch_array($adminQuery,MYSQLI_BOTH)){ if(valid_password($_POST['password'], $admin['password'])){ if($admin['xfactor'] == 0 && in_array($_SERVER['REMOTE_ADDR'],$goodness) || $admin['xfactor'] == 1 && in_array($_SERVER['REMOTE_ADDR'],$goodness)){ $_SESSION['adminUsername'] = $admin['username']; $_SESSION['adminPassword'] = mightyCrypt($_POST['password']); $_SESSION['adminLastLogin'] = $admin['last_login_date']; if($admin['chat_user'] == '1' && $admin['username'] != 'mcruz'){ $_SESSION['chatuser'] = $admin['chat_user']; //mysql_query("update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."', chat_ready = '1' where admin_id = '$admin[admin_id]'"); } mysqli_query($GLOBALS['mydbi'],"update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."' where admin_id = '$admin[admin_id]'"); adminLog($admin['admin_id'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); header("Location: index.php"); }else{ if($admin['authy_id'] >= 1){ $_SESSION['authy_id'] = mightyCrypt($admin['authy_id']); $_SESSION['adminPassword'] = mightyCrypt($_POST['password']); }else{ $_SESSION['message'] = '<p class="error" align="center">You do not have access to this site.</p>'; } header("Location: login.php"); } exit(); }else{ loginFail($_POST['username'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); $_SESSION['message'] = '<p class="error" align="center">Invalid Access</p>'; } }else{ loginFail($_POST['username'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); $_SESSION['message'] = '<p class="error" align="center">Username does not exist</p>'; } }else{ loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); $_SESSION['message'] = '<p class="error" align="center">Invalid Login</p>'; } header('Location: login.php'); exit(); } if(isset($_POST['logindos']) && trim(mightyCrypt($_SESSION['authy_id'],'decrypt')) >= 1){ if(!$_COOKIE['adminusername']){ setcookie("adminusername", trim(mightyCrypt($_SESSION['authy_id'],'decrypt')), time() + 3600); } $usertoken = $_POST['usertoken']; $verification = $authy_api->verifyToken(trim(mightyCrypt($_SESSION['authy_id'],'decrypt')), $usertoken, array("force" => "true")); if($verification->ok()){ $adminQuery = mysqli_query($GLOBALS['mydbi'],"select * from admin where authy_id = '".trim(mightyCrypt($_SESSION['authy_id'],'decrypt'))."' and status = 1"); if($admin = mysqli_fetch_array($adminQuery,MYSQLI_BOTH)){ $_SESSION['adminUsername'] = $admin['username']; $_SESSION['adminLastLogin'] = $admin['last_login_date']; if($admin['chat_user'] == '1' && $admin['username'] != 'admin'){ $_SESSION['chatuser'] = $admin['chat_user']; } mysqli_query($GLOBALS['mydbi'],"update admin set num_logins = num_logins + 1, last_login_date = '".date("Y-m-d H:i:s")."' where admin_id = '$admin[admin_id]'"); adminLog($admin['admin_id'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); header("Location: index.php"); exit(); }else{ loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); $_SESSION['message'] = '<p class="error" align="center">User does not exist</p>'; } }else{ loginFail($_COOKIE['adminusername'],$_SERVER['HTTP_REFERER'],'Admin Panel Login'); $_SESSION['message'] = '<p class="error" align="center">Invalid Access</p>'; } header('Location: login.php'); exit(); } $message = $_SESSION['message']; unset($_SESSION['message']); Есть данные $authy_api = e2c4383cb9531f5bcc91825315500a86 authy_id = 5215964
require('includes/authy-settings.php'); PHP: <?//authy inforequire_once('vendor/autoload.php');$authyKey = 'e2c4383cb9531f5bcc91825315500a86';$authy_api = new Authy\AuthyApi($authyKey);?> vendor/autoload.php PHP: <?php// autoload.php @generated by Composerrequire_once __DIR__ . '/composer' . '/autoload_real.php';return ComposerAutoloaderInitc4f47eda716896151c65658cdaf9cca6::getLoader(); include('includes/twix.php'); PHP: <?$monkey = md5('furyfunlovingpets', true);//special stuff function mightyCrypt($id,$type = 'encrypt'){ if($type == 'decrypt'){ $data = decryptmeText($id); }else{ $data = encryptmeText($id); } return $data; } function encryptmeText($text){ global $monkey; $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $data = mcrypt_encrypt(MCRYPT_BLOWFISH, $monkey, $text, MCRYPT_MODE_ECB, $iv); $data = bin2hex($data); return $data; } function decryptmeText($encryptedtext){ global $monkey; $iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $encryptedtext = pack('H*', $encryptedtext); $data = mcrypt_decrypt(MCRYPT_BLOWFISH, $monkey, $encryptedtext, MCRYPT_MODE_ECB, $iv); return $data; } ?> Вроде оно,если еще что нужно могу скинуть сюда или в ПМ
В добавок к верхнему посту класс Authy AuthyApi.php PHP: <?php/*** ApiClient** PHP version 5** @category Services* @package Authy* @author David Cuadrado <[email protected]>* @license http://creativecommons.org/licenses/MIT/ MIT* @link http://authy.github.com/pear*//*** Authy API interface.** @category Services* @package Authy* @author David Cuadrado <[email protected]>* @license http://creativecommons.org/licenses/MIT/ MIT* @link http://authy.github.com/pear*/namespace Authy;use Resty\Resty;class AuthyApi{const VERSION = '1.3.0';protected $rest;protected $api_key;protected $api_url;/*** Constructor.** @param string $api_key Api Key* @param string $api_url Optional api url*/public function __construct($api_key, $api_url = "https://api.authy.com"){$this->rest = new Resty();$this->rest->setBaseURL($api_url);$this->rest->setUserAgent("authy-php v".AuthyApi::VERSION);$this->api_key = $api_key;$this->api_url = $api_url;}/*** Register a user.** @param string $email New user's email* @param string $cellphone New user's cellphone* @param int $country_code New user's country code. defaults to USA(1)* @return AuthyUser the new registered user*/public function registerUser($email, $cellphone, $country_code = 1){$params = $this->defaultParams();$params['user'] = array("email" => $email,"country_code" => $country_code,"cellphone" => $cellphone);$resp = $this->rest->post('/protected/json/users/new', $params);return new AuthyUser($resp);}/*** Verify a given token.** @param string $authy_id User's id stored in your database* @param string $token The token entered by the user* @param array $opts Array of options, for example: array("force" => "true")** @return AuthyResponse the server response*/public function verifyToken($authy_id, $token, $opts = array()){$params = array_merge($this->defaultParams(), $opts);if (!array_key_exists("force", $params)) {$params["force"] = "true";}$url = '/protected/json/verify/'. urlencode($token).'/'. urlencode($authy_id);$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Request a valid token via SMS.** @param string $authy_id User's id stored in your database* @param array $opts Array of options, for example: array("force" => "true")** @return AuthyResponse the server response*/public function requestSms($authy_id, $opts = array()){$params = array_merge($this->defaultParams(), $opts);$url = '/protected/json/sms/'.urlencode($authy_id);$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Cellphone call, usually used with SMS Token issues or if no smartphone is available.* This function needs the app to be on Starter Plan (free) or higher.** @param string $authy_id User's id stored in your database* @param array $opts Array of options, for example: array("force" => "true")** @return AuthyResponse the server response*/public function phoneCall($authy_id, $opts = array()){$params = array_merge($this->defaultParams(), $opts);$url = '/protected/json/call/'.urlencode($authy_id);$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Deletes an user.** @param string $authy_id User's id stored in your database** @return AuthyResponse the server response*/public function deleteUser($authy_id){$params = array_merge($this->defaultParams());$url = '/protected/json/users/delete/'.urlencode($authy_id);$resp = $this->rest->post($url, $params);return new AuthyResponse($resp);}/*** Gets user status.** @param string $authy_id User's id stored in your database** @return AuthyResponse the server response*/public function userStatus($authy_id){$params = array_merge($this->defaultParams());$url = '/protected/json/users/'.urlencode($authy_id).'/status';$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Starts phone verification. (Sends token to user via sms or call).** @param string $phone_number User's phone_number stored in your database* @param string $country_code User's phone country code stored in your database* @param string $via The method the token will be sent to user (sms or call)** @return AuthyResponse the server response*/public function phoneVerificationStart($phone_number, $country_code, $via='sms'){$params = array("phone_number" => $phone_number,"country_code" => $country_code,"via" => $via);$params = array_merge($params, $this->defaultParams());$url = '/protected/json/phones/verification/start';$resp = $this->rest->post($url, $params);return new AuthyResponse($resp);}/*** Phone verification check. (Checks whether the token entered by the user is valid or not).** @param string $phone_number User's phone_number stored in your database* @param string $country_code User's phone country code stored in your database* @param string $verification_code The verification code entered by the user to be checked** @return AuthyResponse the server response*/public function phoneVerificationCheck($phone_number, $country_code, $verification_code){$params = array("phone_number" => $phone_number,"country_code" => $country_code,"verification_code" => $verification_code);$params = array_merge($params, $this->defaultParams());$url = '/protected/json/phones/verification/check';$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Phone information. (Checks whether the token entered by the user is valid or not).** @param string $phone_number User's phone_number stored in your database* @param string $country_code User's phone country code stored in your database** @return AuthyResponse the server response*/public function phoneInfo($phone_number, $country_code){$params = array("phone_number" => $phone_number,"country_code" => $country_code);$params = array_merge($params, $this->defaultParams());$url = '/protected/json/phones/info';$resp = $this->rest->get($url, $params);return new AuthyResponse($resp);}/*** Return the default parameters.** @return array array with the default parameters*/protected function defaultParams(){return array("api_key" => $this->api_key);}} AuthyResponse.php PHP: <?php/*** ApiClient** PHP version 5** @category Services* @package Authy* @author David Cuadrado <[email protected]>* @license http://creativecommons.org/licenses/MIT/ MIT* @link http://authy.github.com/pear*//*** Friendly class to parse response from the authy API** @category Services* @package Authy* @author David Cuadrado <[email protected]>* @license http://creativecommons.org/licenses/MIT/ MIT* @link http://authy.github.com/pear*/namespace Authy;class AuthyResponse{protected $raw_response;protected $body;protected $errors;/*** Constructor.** @param array $raw_response Raw server response*/public function __construct($raw_response){$this->raw_response = $raw_response;$this->body = $raw_response['body'];$this->errors = new \stdClass();// Handle errorsif (isset($this->body->errors)) {$this->errors = $this->body->errors; // when response is {errors: {}}unset($this->body->errors);} elseif ($raw_response['status'] == 400) {$this->errors = $this->body; // body here is a stdClass$this->body = new \stdClass();} elseif (!$this->ok() && gettype($this->body) == 'string') {// the response was an error so put the body as an error$this->errors = (object) array("error" => $this->body);$this->body = new \stdClass();}}/*** Check if the response was ok** @return boolean return true if the response code is 200*/public function ok(){return $this->raw_response['status'] == 200;}/*** Returns the id of the response if present** @return integer id of the response*/public function id(){return isset($this->body->id) ? $this->body->id : null;}/*** Get the request errors** @return stdClass object containing the request errors*/public function errors(){return $this->errors;}public function message(){return $this->body->message;}}Change dir:>" style="margin: 0px; color: rgb(255, 255, 255); border: 1px solid rgb(221, 255, 85); font-size: 9pt; font-family: monospace, 'Courier New'; background-color: rgb(85, 85, 85);"> AuthyUser.php PHP: <?php/** * ApiClient * * PHP version 5 * * @category Services * @package Authy * @author David Cuadrado <[email protected]> * @license http://creativecommons.org/licenses/MIT/ MIT * @link http://authy.github.com/pear *//** * User implementation. Extends from Authy_Response * * @category Services * @package Authy * @author David Cuadrado <[email protected]> * @license http://creativecommons.org/licenses/MIT/ MIT * @link http://authy.github.com/pear */namespace Authy;class AuthyUser extends AuthyResponse{/** * Constructor. * * @param array $raw_response Raw server response */public function __construct($raw_response) { if (isset($raw_response['body']->user)) {// response is {user: {id: id}}$raw_response['body'] = $raw_response['body']->user; }parent::__construct($raw_response); }} помогите с решением проблемы
Ребята, у меня очень важная и срочная просьба. Помогите, пожалуйста найти этот скрипт. Он очищает тексты от мусора, тут его описание. PHP-скрипт для очистки текстов от мусора (по заданным фильтрам) Описание Скрипт разбивает текст на предложения, затем проверяет каждое предложение по фильтрами. Если совпало - предложение удаляется. Все предложения, прошедшие проверку записываются в результирующий файл. Скрипт хорошо подходит для создания текстовок для доров из сканированных книг, в которых бывает полно мусора. И что ещё хуже, часто бывает, что русские буквы заменены на внешне идентичные английские буквы. После работы скрипта в результирующем файле будут сохранены только чистые предложения (в зависимости от выбранных фильтров). Требования PHP 4 Фильтры Для удобства все фильтры выведены в отдельный файл "filters.txt" и легко могут быть изменены\добавлены. ps) Для тех, кто хочет другой фильтр и не разбирается в регулярных выражениях - пишите в ветке, подскажу # # Фильтры, по которым будут проверяться предложения. # При совпадении фильтра с предложением - предложение удаляется. # Формат записи: [регулярное выражение] [разделитель-символы табуляции] [описание] # /^.{0,5}$/ Удалять предложения длинной менее 6 символов /^[^А-ЯЁA-Z]/ Удалять предложения, начинающиеся не с заглавной буквы /[А-ЯЁ]{2}/ Удалять предложения, в которых присутствует 2 и более подряд идущих заглавных букв /[^а-я0-9ё \-,]/i Удалять предложения, в которых присутствуют любые символы отличные от русских букв, цифр, тире и запятой /^([^\s]+\s?){0,3}$/ Удалять предложения, в которых менее 4 слов /^.+[А-ЯЁA-Z]/ Удалять предложения, в которых есть заглавные буквы не в начале предложения (обычно, это имена собственные, названия и т.п.) Просто я нигде его найти не могу, а ссылка под описанием, где я нашел его, уже недействительна. Очень нужен этот скрипт. Помогите найти
Есть папка shablon. В ней лежат скрипты и пару папок. Необходимо: 1. Сделать замену в этих скриптах по макросам и записать в папку с катерориями. {TIRE} {PROBEL} {KREST} 2. Макросы реализовать из списка категорий в файле txt. EXAMPLE: HTML: кино онлайон мильтики про черепаху ... ... просто интересный сериал кино онлайон HTML: {TIRE}кино-онлайон {PROBEL}кино онлайон {KREST}кино+онлайон мильтики про черепаху HTML: {TIRE}мильтики-про-черепаху {PROBEL}мильтики про черепаху {KREST}мильтики+про+черепаху То ест берется первая строка из файла с категориями и начинается замена по макросам с сохранением в папку по названию категории. gotovo/кино-онлайон/ и тут уже скрипты с заменой по макросу. gotovo/мильтики-про-черепаху/ и тут уже скрипты с заменой по макросу. И так со всеми категориями. Спасибо
Здравствуйте, вот такая проблема PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[28000] [1045] Access denied for user ' u0229_u0229180'@'localhost' (using password: YES)' in C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php:71 Stack trace: #0 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php(71): PDO->__construct #1 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php(58): NG\Database->connect(Array) #2 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Application\Bootstrap.php(58): NG\Database->__construct(Array) #3 [internal function]: Bootstrap->_initDB() #4 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Bootstrap.php(69): call_user_func(Array) #5 C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Bootstrap.php(57): NG\Bootstrap->initMethods() #6 C:\inetpub\vhosts\u0229180.plsk.regruhost in C:\inetpub\vhosts\u0229180.plsk.regruhosting.ru\center-films.ru\Library\NG\Database.php on line 71 Что это значит ? Заранее спасибо
Здравствуйте, нужно написать скриптик. Вообщем так, например ввожу ключ в поле, и если ключ верный выполнить определенную процедуру. Ключ брать из базы данных MySQL. Спасибо заранее.