N2kroot С учетом длины строки, для одинаковых по количеству / урлов. Для больших списков - не советую применять, так как скорость будет не ахти PHP: $str = 'http://yandex.ru/a/a/a/ http://yandex.ru/ http://yandex.ru/b/ http://yandex.ru/a/index.php?feuhfbheri http://yandex.ru/index.php?feuhfbheri'; $arr = explode("\n",$str); function cmp($a,$b) { if (substr_count($a,'/') > substr_count($b,'/')) return 1; elseif (substr_count($a,'/') < substr_count($b,'/')) return -1; if (strlen($a)>strlen($b)) return 1; return -1; } usort($arr,'cmp'); var_dump($arr);
PHP: <?php if (!$_POST['draw']): ?> <form name="draw_ub" method="post" action="index.php"> <input type="text" name="name" /> <input type="text" name="text" /> <input type="submit" name="draw" value="draw" /> </form> <?php else: Header("Content-type:image/png");//Какбэ намекаем браузеру,что выводить надо картинку (убери эту строку и запусти скрипт. Ну,как? Понравилось? :-D function check_len($to_check)//ф-ция,для проверки количества сиволов ( не должно превышать 58) { if(strlen($to_check)>58) { Header("Content-type:image/png");//Какбэ намекаем браузеру,что выводить надо картинку (убери эту строку и запусти скрипт. Ну,как? Понравилось? :-D $imag=imageCreateFromJPEG("images/fail.jpeg"); ImageJpeg($imag); exit(); } } $form="<input type='text' name='get_bb' value='{$_SERVER['HTTP_HOST']}.{$file_dir}' />"; $username=(string)$_POST['name'];//%username $text=(string)$_POST['text']; //Что сказал чел? check_len($username); //Проверяем 1 вводимую строку check_len($text);//Проверяем 2 вводимую строк $image=imageCreateFromPng("images/sample.png"); //Создаем ящик для хранения картинки $text_color=imageColorAllocate($image,198,198,198);//Задаем цвет текста(формат RGB) echo $form; ImageTTFText($image, 6, 0, 50, 14, $text_color, "include/hooge.ttf", "Прибежал {$username} и сказал:");//Рисуем текстик :) ImageTTFText($image, 6, 0, 50, 32, $text_color, "include/hooge.ttf", $text);//2 строка ImagePng($image);//Собственно выводим саму картинку в браузер ImagePng($image,"images/".$file_dir=rand('a','z').md5(rand(1,'z')).md5(time()+rand(1,10)).".png"); ImageDestroy($image);//Освобождаем место :) endif; ?> Как сделать так,что бы работал Я знаю,что трабла в хеадерах,а что делать - хз.
Помогите плс Как зделать чтоб он сразу из всех найденых выдовал только последний ид ???? PHP: preg_match_all('#/v2/video/watch/([0-9]*)/#', $ff, $idz, PREG_SET_ORDER); $cc = count($idz[1]); foreach ($idz as $ids) { if (!in_array($ids[1], $f_ids)) $f_ids[] = $ids[1];
На скорую руку, может конечно есть логичнее решение, незадумывался. PHP: <?php $var = ' /v2/video/watch/1/ /v2/video/watch/2/ /v2/video/watch/3/ /v2/video/watch/4/'; if(preg_match_all('#/v2/video/watch/(.*)/#',$var,$m)) { $count = count($m[0]); echo $m[0][$count-1]; } ?>
Выручите плс Как зделать чтоб он сразу из всех найденых ид выдовал только последний найдэный ид ???? PHP: preg_match_all('#name=(.*)></a><font class#', $wp, $kol, PREG_SET_ORDER); $cc = count($kol[1]); foreach ($idz as $ids) { if (!in_array($ids[1], $f_ids)) $f_ids[] = $ids[1]; echo "Poslednij name $id\n";
Отпарсил одну страницу с помощью DOM и хочу полученные данные занести в БД MySQL. Моя БД: Code: CREATE TABLE `jyf` ( `gf` varchar(5) collate cp1251_general_cs NOT NULL, PRIMARY KEY (`gf`), FULLTEXT KEY `gf` (`gf`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs; Скрипт записи в БД: PHP: mysql_connect('127.0.0.1', 'root', '') or die ('Не могу подключится к серверу'); mysql_select_db('hgf'); $lvl=iconv('utf-8', 'windows-1251', $lvl); mysql_query("INSERT INTO jyf VALUES ('$lvl')") or die ("Запись в БД не удалась<br>"); После парсинга текст в кодировке UTF-8, преобразую его в windows-1251 и в таком виде записываю в БД. Что оказывается в БД: Code: INSERT INTO `jyf` VALUES ('\r\n '); Если вывести на страницу после перекодировки на страницу, то всё отображается нормально. Должна была записана цифра 6. Что я делаю не так?
Интересует вопрос как через curl , пройти basic авторизацию , гугл молчит ... вот например в http есть такая фича Code: CURLOPT_POSTFIELDS , а вот для бейсика не могу найти
решил сделать чтобы сайт собирался "покусочкам" - создал неск-ко файлов с теми данными которые на многих страницах совпадают, к примеру в одном файле находятся след. данные: заголовок файла до <head>, постоянные теги хеда (оформление и т.д.), последние строки файла (</html> и комент что типа сайт написан мной =)) в страничках на пхп написан код который загружает этот файл и выводит нужные данные (они разбиты построчно)... ВОПРОС: не будет ли нагрузка на сервер слишком большой? возможно лучше использовать include() или что-то еще? Или вообще отказаться от этого? (просто так значительно быстрей и удобней редактировать сайт) З.Ы. сори за глупый вопрос, но гугл мне не помогает))
m0Hze, спс, оч. много ценной информации! если кто не понял - перефразирую: какой способ этой самой "шаблонизации" наиболее эффективен? и стоит ли его использовать там где можно обойтись статическим контентом?
Имеется php скрипт для работы с сокетами PHP: <?php error_reporting(E_ALL); /* Позволить сценарию зависнуть вокруг ожидания подключений */ set_time_limit(0); /* Включить неявный вывод, так что мы видим то, что мы получаем * когда это приходит . */ ob_implicit_flush(); $address = '127.0.0.1'; $port = 10000; if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n"; } if (($ret = socket_bind($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n"; } if (($ret = socket_listen($sock, 2)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n"; break; } /* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); do { if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n"; break 2; } if (!$buf = trim($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; socket_write($msgsock, $talkback, strlen($talkback)); echo "$buf\n"; } while (true); socket_close($msgsock); } while (true); socket_close($sock); ?> Если подключаться к нему неткатом или самописным клиентом на делфи то все сообщения через сокет нормально проходят и если отправить quit то соединение благополучно закрывается и php скрипт продолжает работать. А если не отсылать quit, а просто закрыть прогу, то скрипт выдает Code: Warning: socket_read(): unable to read from socket [0]: ╙фрыхээ√щ їюёЄ яЁшэєфшЄх ы№эю ЁрчюЁтры ёє∙хёЄтє■∙хх яюфъы■ўхэшх. in D:\xampp\htdocs\index.php on line 37 socket_read() failed: reason: ═хтхЁэр* ЇєэъЎш*. И соответственно перестает работать. Что нужно исправить, чтобы при закрытии клиента без предварительной отправки quit скрипт продолжал работать? P.S. как исправить кодировку тоже немогу понять. Запускаю скрипт командой D:\xampp\php\php.exe D:\xampp\htdocs\index.php
PHP: if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n"; break 2; } Заменить на PHP: if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "Client diconnected"; break; }
НУЖНА ПОМОЧЬ НЕМОГУ РАЗОБРАТЬСЯ выполняю вход в админку захожу вот только чтоб мне куда нить зайти в этой админке мне надо повторно выполнять вход а точнее я нажимаю на любую станичку из меню и опять мне надо выпплнить вход в одминку и я поподаю на ту страничку на которую я нажал это еще терпимо но когда на своем же сайте зарегистрироваться неможешь вот это уже бесит пож помогите решить эту проблему че за хрень с сайтом