Я вопспользовался библиотекой курл PHP: <? $title = 'Семь'; $search = 'http://s.kinopoisk.ru/index.php?first=no&kp_query='.urlencode($title); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $search); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 25); curl_setopt($ch, CURLOPT_USERAGENT, 'mazzila'); $data = curl_exec($ch); curl_close($ch); echo $data; ?>
Axel G возвращаемый текст вам намекает, что вместо страницы 'http://s.kinopoisk.ru/index.php?first=no&kp_query='.urlencode($title) Нужно обращаться к: http://www.kinopoisk.ru/index.php?first=no&kp_query=%D1%E5%EC%FC
Gifts, хех, это я пробовал, тогда вылетает другая ошибка и получается замкнутый круг. http://www.kinopoisk.ru/index.php?first=no&kp_query='.urlencode($title) HTML: HTTP/1.1 302 Moved Temporarily Server: nginx/0.7.62 Date: Sat, 15 Jan 2011 22:40:14 GMT Content-Type: text/html Content-Length: 161 Connection: close Location: http://s.kinopoisk.ru/index.php?first=no&kp_query=%D1%E5%EC%FC 302 Found
Axel G проблема в том, что s.kinopoisk.ru живет на другом сервере относительно www.kinopoisk.ru, поэтому и подключаться надо к нужному: PHP: $title = 'Семь'; $search = 'http://s.kinopoisk.ru/index.php?first=no&kp_query='.urlencode($title); $REF = 'http://kinopoisk.ru/'; $KP = 's.kinopoisk.ru'; $HOST = 's.kinopoisk.ru'; $fp = fsockopen($KP, 80); if (!$fp) { die('Не могу получить данные с КиноПоиск.Ru'); } else { $head = "GET $search HTTP/1.1\r\nHost: $HOST\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3\r\nReferer: $REF\r\nConnection: Close\r\n\r\n"; fputs($fp, $head); while (!feof($fp)) $tmp .= fgets($fp,1024); } fclose ($fp); iconv('cp1251', 'utf-8', $tmp); echo $tmp;
Подскажите по mod_rewrite Скрипты движка находятся в директории /cgi-bin/ Необходимо создать правило для всех запросов что то вроде /script.pl => /cgi-bin/script.pl а так же подскажите, как можно сделать исключение для общего плавила. а именно обращение к одной дирректории не перенаправлять. Спасибо.
У меня такой вопросик.. во время написания совершил ошибку и написал PHP: $text_v = str_replace ("%RAND_TIME%",date(rand(1,24).":".rand(10,59),$text_v); При тесте PHP не выдал ошибку а сразу начал глючить апач как я понял. Выдавать опере,что скрипт или хост не доступен.. Почему? поидее пхп должен бы ругнуться,что мол бред и нарушен синтаксис... О-о UPD походу это касаемо только джино( он на все ошибки стар реагировать отваливанием всего сайта
есть таблица id name surname например сто записей Иванов повторяется 5 раз, Петров 4 раз и тд (неважно, есть повторы фамилий) Мне надо, чтоб вытаскивало всех авторов, только по одному разу, как сделать? То есть, вытаскивало всех авторов, без повтора
нифига не понимаю почему когда стараешся делать по правилам- нифига не получается... т е пример есть у меня файл с лямом емайлов, почему array_chunk() нифига не работает с большим размером файла т е PHP: <?php $num= '5'; // количество частей на сколько разбить файл $file=file("email.txt"); $cownt=array_chunk($file,$num ); $massiv=$cownt[0];//попробуем вывести первую часть foreach ( $massiv as $k=>$v ) { echo " $v<br>"; flush(); }; ?> постарался только первую часть вывести и здесь выбивает ошибку только при большом размере файла, ну а если подставляеш костыли то все работает прекрасно т е так PHP: <?php $num= '5'; // количество частей на сколько разбить файл $file=file("email.txt"); $size= count($file); $cownt=ceil($size/$num) ;//количество строк записи в файл $m='1'; for ($x=1; $x<=$num; $x++) { $part='part'.$x; $f_1 = fopen("$part.txt", "w"); for ($i=0; $i<=$cownt; $i++) { $col=rtrim($file[$m],"\r\n"); fwrite($f_1,"$col\r\n" ); $m++; } fclose($f_1); $m=$cownt*$x; } ?>
Kusto это не array_chunk не работает, это интерпретатор падает из-за нехватки памяти. И кто вам вообще сказал, что подгружать большой файл целиком, а потом чанком делать его копию - это по правилам? Можете, конечно, увеличить в php.ini memory_limit, но лучше пользоваться вторым вариантом, правда и он как-то кривоват Я бы решал как-то так: PHP: $num= 5; // количество частей на сколько разбить файл $f = fopen('emails.txt', 'rb'); $count = 0; while(fgets($f, 4096)) $count++; fseek($f, 0); $chunk_size = ceil($count / $num); for ($i=0;$i<$num;$i++) { $f_out = fopen('part'.$i.'.txt','wb'); for ($row=0;$row<$chunk_size;$row++) fwrite($f_out, fgets($f, 4096)); fclose($f_out); }
дело в том что это часть небольшой прожки и майлы надо разбивать на количество переменных которые создаются в процессе программы т е чтоб каждая переменная отвечала за свой кусок емайлов в программе- побитно разбить- нефиг делать, только он режет первый и последний майл в файле- поэтому и извращаюсь, кроме того я хтасесом немного расширил и время загрузки файла и соответственно размер, вобщем если оставлю второй вариант и скрипт захватят враги я надеюсь они не будут сильно смеяться? P.S. Gifts - большое спасибо, все работает
Kusto что значит побитно? http://php.net/fgets забирает ровно строку. Лучше вообще не использовать функцию file() и file_get_contents(), если предполагается использовать большие файлы, всегда можно обойтись и без них. Например, если не так важно, чтобы emailы шли по порядку, а главное их разделить, то можно вообще обойтись одним проходом и одним файлом
твой вариант прекрасно работает, ну а насчет побитно я имел ввиду такое PHP: <?php $num='5';// количество частей на сколько разбить файл $f_input = fopen("my.txt", "r"); $part_size = filesize("my.txt") /$num ; for( $i = 1; $i <=$num; $i++){ $part='part'.$i; $$part = fread($f_input, $part_size); $f_1 = 'f_1'.$i; $$f_1 = fopen("part$i.txt", "w"); fwrite($$f_1,$$part ); fclose($$f_1); } fclose($f_input); ?> насчет file() и file_get_contents(),- полностью согласен, не раз уже на этом спотыкался
Есть масив с некоторым количеством элементов. Как сделать функцию которая будет возвращать заданное количество случайных элементов из массива неповторяющихся? Типа есть массив скажем 5, 1, 11, 22, 8 я пишу типа get(5) и получаю все элементы массива, а если напишу get(4) то случайные 4 элемента из массива (например 5 22 8 1 11, но чтобы не могло выпасть типа 5 22 8 8 1). И надо как то оптимально сделать так чтобы не гонять лишние циклы при больших масивах (если будет выпадать уже выбраный из масива элемент)
Semyon PHP: <?php function get($data,$count) { shuffle($data); return array_slice($data,0,$count); } $my_array = range(1,20); // тут я создал массив 1,2,3,4 .. 20 print_r(get($my_array,5)); ?> так?
Всем день добрый... Вопрос такой... На дипломный проект предложили сделать почту для колледжа... Я в принципе не против - но вот знать бы ещё что и куда... Все знания остановились на создании фейков... Реально ли до июня выучить необходимое и создать? Желание есть само собой... На чём писать и что учить? Есть другой вариант - придумать что то другое... но с идеями я страдаю...