Добрый день. Есть файл на FTP сервере, который обновляется каждые 2 недели и должен отображаться на веб-странице. Проблема в том, что обновленные файлы сохраняются постоянно в разном формате и под разными именами (но всегда имеют схожести в названии, например в имени всегда присутствуют цифры '125'). Можно ли как-нибудь настроить поиск этого файла на сервере по известным данным (125) и обновлять его на веб-странице по новому имени?
Есть код голосования,но,к сожалению, отсутствует защита на ограничение оценивания,т.е можно голосовать бесконечное кол-во раз. Мне нужно исправить это,чтобы можно было голосовать 1 раз с одного IP
определяете ip, заносите в бд, затем проверяете, есть и этот ip там. также можно добавлять куку, например VOTE=1. но от автоматизации это не спасет — советую добавить капчу.
записываю лог сайта в файл, есть проблема переодически файлы пустые становятся, так как хост слабый и когда файл растёт - то возможно хост затирает файл пишется в файл так: PHP: $file_log=$_SERVER['DOCUMENT_ROOT'] .'/log.txt';//файл с логом $col_zap_log=60; //строк в файле не более $lines = file($file_log); while(count($lines) > $col_zap_log) array_shift($lines); $lines[] = 'контент'."\r\n"; file_put_contents($file_log, $lines, LOCK_EX); // конец записи в файл можно ли сделать так, что например при достижении 60 строк, этот файл переименовывался, например log_дата_время_последнего_изменения.txt - как архивный будет, а запись продолжалась в этот же файл log.txt , созданый пустым после переименования ? помогите пожалуйста с реализацией
Текущий log.txt тебе придется очищать, чтобы архивы не создавались постоянно как только > 60 строк. Типа: Если log.txt больше 60 строк: - переименовать log.txt в дата-время.txt В пхп не силен ( Но копировать эти строку куда-то точно не стоит.
PHP: <?php $file = 'log.txt'; $max_lines = 60; $linecount = 0; $handle = fopen($file, "r"); while(!feof($handle)){ $line = fgets($handle); $linecount++; } fclose($handle); if($linecount > $max_lines) { rename($file, date('Y-m-d-H-i-s').".txt") or die('error'); touch('log.txt'); } ?>
Здравствуйте уважаемые имеется код http://7269697.tk/1.txt в нем необходимо оставить лишь ссылки вида <a class="avatar" href="http://promodj.com/163416029365"> как правильно это сделать?
Всем привет! суть проблемы в том, что файл htaccess в корне сайта содержит конфиги, и записывать в него строки php скриптом опасно, так как бывает хостинг стирает все данные когда зависает в процессе добавления. было бы замечательно если можно было брать ip забаненых из txt списка и что бы в htaccess он подставлялся в блок бана. как осуществить бан Ip адресов и подсетей в htaccess с помощью php? требуется прописать в переменную имя папок -где лежит скрипт, а скрипт лежит глубоко в папках например: http://site.ru/papka1/papka2/papka3/script.php нужно все папки подхватить в переменную: papka1/papka2/papka3 как это можно сделать ? как можно запомнить select list, хочу всё в cookie записать, данный лист фиксированый, но как правильно к нему подставлять после отправки формы значение selected, что бы значение после нажатия на кнопку было то которое было выбрано и отправлено нажатием кнопки ?
немогли бы показать как именно? я знаю что регулярками, но к сожалению я их абсолютно не понимаю уважте сударь
Выражение Code: <a class="avatar" href="([^"]+)"> Использовать для js можно так, например: Code: text.match(/<a class="avatar" href="([^"]+)">/g); Типа открыл браузером http://7269697.tk/1.txt и в консоли js пишешь: Code: document.children[0].textContent.match(/<a class="avatar" href="([^"]+)">/g);
а как на пхп в скрипте это выполнить? у меня переменная в которой этот файл и еще вопрос в догонку, есть скрипт PHP: <?php $url = 'http://promodj.com'; // URL сайта на котором будем авторизоваться $urlTo = 'http://promodj.com/login'; // URL на которой будем слать POST данные $login = '1'; // Ваш логин $pass = '1'; // Ваш пароль $post = 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass; // POST данные $ch = curl_init(); // Инициализируем сеанс CURL curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную $html = curl_exec($ch); // Имитируем заход на сайт curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных $html = curl_exec($ch); // Записываем пришедшие данные в переменную curl_close($ch); // Закрываем сеанс работы CURL echo $html; // И вуаля :) Выводим авторизованную страницу ?> как заставить его после авторизации переходить на страницу http://promodj.com/djs?searchfor=&sortby=date&addressID=&onlinenow=1 не теряя авторизации?
Не знаю я пхп, но видмо вот так: Code: <?php $subject = "тут файл"; $pattern = '<a class="avatar" href="([^"]+)">'; preg_match($pattern, $subject, $matches); print_r($matches); ?>
вообщем с переменными и циклом разобрался вопрос следующий: вот скрипт авторизации PHP: <?php $url = 'http://promodj.com'; // URL сайта на котором будем авторизоваться $urlTo = 'http://promodj.com/login'; // URL на которой будем слать POST данные $login = '1'; // Ваш логин $pass = '1'; // Ваш пароль $post = 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass; // POST данные $ch = curl_init(); // Инициализируем сеанс CURL curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную $html = curl_exec($ch); // Имитируем заход на сайт curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных $html = curl_exec($ch); // Записываем пришедшие данные в переменную curl_close($ch); // Закрываем сеанс работы CURL echo $html; // И вуаля :) Выводим авторизованную страницу ?> как с помощью этого скрипта не выходя из аккаунта к примеру перейти на страницу http://promodj.com/djs?onlinenow=1&sortby=date&page=11
php 301 редирект и реферер location redirect на php странный, когда редирект 301 идёт внутри сайта, то реферер не передаёт, если проксирую ссылку через него же - то передаётся в чём подвох тогда ? PHP: <?php $url = preg_replace("/[^a-z0-9\/\.\_\?\=\&]/i", "", $_GET['url']); $redirect = 'http://'.$url; header("HTTP/1.1 301 Moved Permanently"); header("Location: $redirect"); ?>
PHP: <?php $url = 'http://promodj.com'; // URL сайта на котором будем авторизоваться $urlTo = 'http://promodj.com/login'; // URL на которой будем слать POST данные $login = '1'; // Ваш логин $pass = '1'; // Ваш пароль $post = 'backto=promodj.com&unsafeip=1&remember=1&login='.$login.'&password='.$pass; // POST данные $ch = curl_init(); // Инициализируем сеанс CURL curl_setopt($ch, CURLOPT_URL, $url); // Заходим на сайт curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную $html = curl_exec($ch); // Имитируем заход на сайт curl_setopt($ch, CURLOPT_URL, $urlTo); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_POST, true); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Передаем POST данные $html = curl_exec($ch); // Записываем пришедшие данные в переменную curl_setopt($ch, CURLOPT_URL, "http://promodj.com/djs?onlinenow=1&sortby=date&page=11"); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную $html = curl_exec($ch); // Записываем пришедшие данные в переменную curl_close($ch); // Закрываем сеанс работы CURL echo $html; // И вуаля :) Выводим авторизованную страницу (djs?onlinenow=1&sortby=date&page=11) ?> Советую сделать отдельную ф-ию, которая будет совершать ВСЕ запросы (get, post, cookies) в зависимости от входных параметров