А как можно подсчитать кол-во вхождений символов в строке(тексте)? ну вот в общем есть один метод расшифровки сообщений "статистический" называется! Т.е. есть определённая статистика по "вхождению" букв в текст(есле надо преведу вам её позже, щас в универ бежать надо ) и вот собирается статистика с зашифрованного сообщения, а после сравнивается с "табличными" значениями и затем заменяются буквы. вот например буква "а" встречается допустим 15 раз на 100 символов, сняв статистику с зашифрованного сообщения видим что "ы" встречается также 15/100 раз ну и значит заменяем все "Ы" на "А".
Balvan PHP: print_r(count_chars('Какая-то произвольная строка',1)); Правда все равно шифр простой замены на коротком сообщении вряд ли можно разгадать, плюс многие буквы встречаются с одинаковой вероятностью (опять таки для языка в целом, но не для данного сообщения)
http://www.sendspace.com/file/la1dhk тут специальная програмулина для частотного криптоанализа =) ею будет проще сначала кормишь ей текст что в архиве или любой другой, потом свой шифротекст, а дальше ты сам знаешь что делать)
Помогите исправить ICQ-бот на PHP что бы он при получении сообщения от кого-либо отправлял сообщения с текстом из текстового файла по-строчно, с небольшим интервалом времени, как бы имитируя разговор настоящего человека. Т.е. на каждое полученое сообщение от одного номера отвечал новой фразой из текстового файла. Code: <? include "c99phpicq.php"; set_time_limit (0); ignore_user_abort(true); $icq = new ICQclient("uin","pass"); $icq->errorstream = false; $icq->dbgstream = false; $icq->connect(); $icq->setstatus("NA","WORK"); $icq->setstatusflags("DCCONT",""); $icq->login(); while ($icq->socket) { $icq->listen(); if ($icq->ismessage()) { $uin = $icq->inLastVar["uin"]; $text = $icq->inLastVar["text"]; $mid = md5($icq->inLastVar["mid"]); $text = trim($text); /*скрипт заканчивает свое выполнение --дисконнект бота*/ if ($text == "!exit" && $uin=="uin_admin") { exit; } switch($text) { case "/nomer" : $icq->message_send($uin,"message"); break; default: $icq->message_send($uin,"Меня сейчас нет. :)"); #по умолчанию ответ бота } /* запись всех посланных сообщений боты*/ $log="log.txt"; $fp = fopen($log,"a+"); fwrite($fp,"$uin:$text\n"); fclose($fp); } }
Вопрос php-гурам Дали мне магазин на реконструкцию, а там код куда попало, раскидан весь как зря, даже копаться в лом теперь. Как можно его структуировать в более-мение читаемый вид? Помню в дримвейвере была такая кнопка для html кода, а как то же самое сделать с php? Спасибо!
На ачате через js, через php никак(именно через HTTP хедары) ибо это делает клиент, в смысле передает рефферер.
есть php скрипт для поиска файлов на сервере: PHP: <?php scan_dir("/xampp/htdocs"); ////////////////////////////////////////////////////////// // Рекурсивная функция - спускаемся вниз по каталогу ////////////////////////////////////////////////////////// function scan_dir($dirname) { // Объявляем переменные замены глобальными GLOBAL $text, $retext; // Открываем текущую директорию $dir = opendir($dirname); // Читаем в цикле директорию while (($file = readdir($dir)) !== false) { // Если файл обрабатываем его содержимое if($file != "." && $file != "..") { // Если имеем дело с файлом - производим в нём замену if(is_file($dirname."/".$file)) { //echo $file."<br>"; $findme = '156_med.jpg'; $pos = strpos($file, $findme); if ($pos !== false) { echo $dirname."/".$file."<br>"."\n"; $f = fopen("data.txt", "a+"); fwrite($f, $dirname."/".$file."\n"); fclose($f); } } // Если перед нами директория, вызываем рекурсивно // функцию scan_dir if(is_dir($dirname."/".$file)) { // echo $dirname."/".$file."<br>"; scan_dir($dirname."/".$file); } } } // Закрываем директорию closedir($dir); } ?> файлов и папок на сервере ооочень много. через пару минут выполнения выдаёт internal server error уже не знаю куда копать... и в чём проблема в скрипте или сервер... php.ini (есть возможность ред.) уже весь перекопал, memory limit увеличивал (не помогло). Подскажите в чём может быть проблема? и как можно оптимизировать скрипт.
lothlorian system/exec/passthru заблокированы что ль, что приходится так извращаться? Попробуй убрать рекурсию, точнее сделать ее немного по другому. Ака закрывать все открытые ресурсы, до вызова функции. PHP: <?php set_time_limit(0); scan_dir("/xampp/htdocs"); ////////////////////////////////////////////////////////// // Рекурсивная функция - спускаемся вниз по каталогу ////////////////////////////////////////////////////////// function scan_dir($dirname) { $dirs = array(); // Объявляем переменные замены глобальными GLOBAL $text, $retext; // Открываем текущую директорию $dir = opendir($dirname); // Читаем в цикле директорию while (($file = readdir($dir)) !== false) { // Если файл обрабатываем его содержимое if($file != "." && $file != "..") { // Если имеем дело с файлом - производим в нём амену if(is_file($dirname."/".$file)) { //echo $file."<br>"; $findme = 'background.png'; $pos = strpos($file, $findme); if ($pos !== false) { ##echo $dirname."/".$file."<br>"."\n"; $f = fopen("data.txt", "a+"); fwrite($f, $dirname."/".$file."\n"); fclose($f); } } // Если перед нами директория, вызываем рекурсивно // функцию scan_dir if(is_dir($dirname."/".$file)) { // echo $dirname."/".$file."<br>"; echo " "; $dirs[]=$dirname."/".$file; } } } // Закрываем директорию closedir($dir); while ($one = array_pop($dirs)) { scan_dir($one); } } ?>
как проверить существует ли запись в бд? PHP: $true=mysql_query("SELECT * from users WHERE name=$name"); if($true=TRUE){} Не работает
kevmen Тру :-D PHP: if (mysql_query('SELECT * from users WHERE name=\''.mysql_real_escape_string($name)."'")) { echo 'запись есть'; } И еще - а вы уверены, что переменная $name - установлена?
всем здравсвуйте. есть кусок кода и дальше идет отправка сообщения на мыло через стандартную функцию mail(). Вопрос в том как можно немного модифицировать дату отправки. т.е. по дефолту дата отправки ставит нынешняя. как можно изменить ее на вчерашнюю? видел делали, но вопрос как?
2Extremal, меня инетерсует не как изменить саму дату. а как изменить дату отправки в отправленном письме?