Пошлый reg comp php. Man regcomp (3): функции регулярных выражений POSIX. Освобождение буфера шаблона POSIX

Это руководство по установке поможет Вам установить и сконфигурировать PHP3 на Ваших web серверах под Windows 9x/NT. Данное руководство составил Bob Silva . Последнюю версию можно найти по адресу http://www.umesd.k12.or.us/php/win32install.html .

Данное руководство обеспечивает поддержку установки на:

Personal Web Server (рекомендуется новейшая версия)
Internet Information Server 3 or 4
Apache 1.3.x
Omni HTTPd 2.0b1
Изменение конфигурации для PHP3:

Все модули теперь начинаются с префикса "php3_". Вы должны изменить свой файл php3.ini и/или все сценарии загрузки расширений с функцией dl() (либо везде удалите префикс "php3_"). Это предотвратит путаницу между модулями PHP и их библиотеками обеспечения.

ChangeLog , FAQ и обновленную документацию всегда можно найти на официальном сайте PHP или любом из его зеркал.

Основные шаги установки:

Данные шаги должны быть выполнены при любой установке перед специфическими инструкциями сервера:

    Распакуйте дистрибутивный файл в директорию по Вашему выбору. Неплохим вариантом будет "C:\PHP3\".

    Скопируйте файл "php3-dist.ini" в Вашу директорию "%WINDOWS%" и переименуйте его в "php3.ini". Ваша директория "%WINDOWS%" обычно:

    c:\windows for Windows 95/98
    c:\winnt or c:\winnt40 for NT servers
  • Отредактируйте Ваш файл "php3.ini":

    • вам потребуется изменить "extension_dir" на путь к Вашей установочной директории PHP, либо куда Вы поместили файлы "php3_*.dll" (например c:\php3);

      установите "doc_root" в путь, где располагается document_root web сервера (например c:\apache\htdocs или c:\webroot);

      выберите, какие модули Вы желаете загружать при старте PHP. Вы можете раскомментировать линии "extension=php3_*.dll" для загрузки соответствующих модулей. Некоторые модули требуют дополнительной установки некоторых библиотек в систему для корректной работы. В FAQ PHP можно получить больше информации о том, где получить библиотеки поддержки. Вы можете также загружать модули динамически, используя в сценарии dl("php_*.dll");

      на PWS и IIS Вы можете установить browscap.ini в директории "c:\windows\system\inetsrv\browscap.ini" для Windows 95/98 и "c:\winnt\system32\inetsrv\browscap.ini" для Windows NT. Дополнительную информацию по использованию browscap в PHP можно на зеркале mirror , выберите кнопку "source", чтобы увидеть это в действии;

Windows 95/98/NT и PWS/IIS 3:

Рекомендуемый метод конфигурирования этих серверов состоит в использовании INF файлов, поставляемых с дистрибутивом (php_iis_reg.inf). Вы можете отредактировать этот файл и убедитесь, что расширения и установочная директория PHP соответствует Вашим параметрам. Или Вы можете следовать перечисленным ниже шагам, чтобы сделать это вручную.

ПРЕДУПРЕЖДЕНИЕ: Эти шаги включают в себя непосредственную работу с windows registry. Мы настоятельно рекомендуем вам сначала сделать резервную копию registry. Группа разработчиков PHP не несет ответственности, если Вы повредите Ваш registry.

    Запустите Regedit;

    Перейдите к: HKEY_LOCAL_MACHINE /System/CurrentControlSet/Services
    /W3Svc /Parameters/ScriptMap .

    В меню редактирования выберите New->String Value .

    Определите расширение, которое Вы хотите использовать для ваших сценариев PHP (например.php3).

    Дважды щелкните на значении новой строки и введите путь к php.exe exe в поле данных (например c:\php3\php.exe %s %s). "%s %s" ОЧЕНЬ важны, PHP не будет работать без этого должным образом;

    Повторите эти шаги для каждого расширения, которое Вы хотите ассоциировать со сценариями PHP;

    Теперь перейдите к HKEY_CLASSES_ROOT ;

    В меню редактирования выберите New->Key ;

    Определите ключ к расширению, которое Вы установили в предыдущем разделе (например.php3

    Выделите новый ключ, в правой части окна дважды щелкните "default value" и введите phpfile .

    Повторите последний шаг для каждого расширения, которое Вы установили в предыдущей секции;

    Теперь создайте другой New->Key под HKEY_CLASSES_ROOT и это имя phpfile .

    Выделите новый ключ phpfile phpfile и в правой части окна, дважды щелкните "default value" и введите PHP Script .

    Щелкните правой клавишей на phpfile и выберите New->Key , это имя Shell .

    Щелкните правой клавишей на Shell и выберите New->Key , это имя open .

    Щелкните правой клавишей на open и выберите New->Key , это имя command .

    Выделите новый ключ command и в правой части окна дважды щелкните на "default value" и введите путь к php.exe . Например: c:\php3\php.exe -q %1 . (не забудьте %1).

    Выйдите из Regedit;

Пользователи PWS и IIS 3 теперь имеют полностью работающую систему. Пользователи IIS 3 могут использовать tool от Steven Genusa для конфигурирования своих карт сценариев.

Windows NT и IIS 4

Для установки PHP3 на NT Server с запущенным IIS4 следуйте следующим инструкциям:

    В Internet Service Manager (MMC) выберите Web site или отправной каталог приложения;

    Откройте меню свойства каталога (щелкните правой клавишей мыши и выберите свойства) и тогда щелкните Home Directory, Virtual Directory или Directory tab;

    Щелкните кнопку Configuration и тогда выберите App Mappings tab;

    Щелкните Add, в рамке Executable наберите c:\path-to-php-dir\php.exe %s %s . Вы ДОЛЖНЫ подставить в конце %s %s , PHP не будет функционировать правильно, если Вы этого не сделаете;

    В рамке Extension определите расширение файла, которое Вы желаете ассоциировать со сценариями PHP (обычно (.php3 и.phtml);

    Установите требуемую безопасность (это делается в Internet Service Manager) и, если Ваш NT Server использует файловую систему NTFS, добавьте права на исполнение для директории I_USR_, которая содержит php.exe .

Windows 9x/NT и Apache 1.3.x

Вы должны редактировать Ваш файл srm.conf или httpd.conf , чтобы сконфигурировать Apache для работы с исполняемыми PHP CGI.

Хотя может быть несколько вариантов конфигурирования PHP под Apache, это делается достаточно просто даже для новичка. Пожалуйста, обратитесь к документации по Apache для получения информации о директивах конфигурации.

    ScriptAlias /php3/"c:/path-to-php-dir/php.exe"

    AddType application/x-httpd-php3 .php3

    AddType application/x-httpd-php3 .phtml

    Action application/x-httpd-php3 "php3/php.exe"

Для обеспечения возможности использования исходного текста, просто создайте файл сценария PHP и вставьте этот код в: . Substitute original_php_script.php3 php3 с именем желательного файла источника (это только один из путей). Обратите внимание, что на Win-Apache все обратные слеши в пути предложения, такого как "c:\directory\file.ext" должны быть заменены на прямые.

Omni HTTPd 2.0b1 для Windows

Данная конфигурация должно быть самая простая:

Повторите шаги 2 - 6 для каждого расширения, которое Вы желаете ассоциировать с PHP.

Модули PHP:

Таблица 3-1. Модули PHP

php3_calendar.dll Функции преобразования календаря
php3_crypt.dll Функции шифрования
php3_dbase.dll Функции баз данных
php3_dbm.dll Эмуляция GDBM посредством Berkely DB2 library
php3_filepro.dll Доступ READ ONLY к базам данных filepro
php3_gd.dll Библиотека функций GD для манипуляций с gif
php3_hyperwave.dll Функции HyperWave
php3_imap4r2.dll Функции IMAP 4
php3_ldap.dll Функции LDAP
php3_msql1.dll Клиент mSQL 1
php3_msql2.dll Клиент mSQL 2
php3_mssql.dll Клиент MSSQL (требует MSSQL DB-Libraries)
php3_mysql.dll Функции MySQL
php3_nsmail.dll Функции Netscape mail
php3_oci73.dll Функции Oracle
php3_snmp.dll Функции SNMP (только для NT!)
php3_zlib.dll Функции ZLib

Всем привет сегодня хочу рассказать вам о программе Reg Organizer. Это программа с множеством функций для полного обслуживания ОС семейства Windows. Reg Organizer отлично подойдет для Windows XP, Vista, 7, 8.1 и 10. С помощью данной программы вы можете ускорить и оптимизировать работу ОС на вашем компьютере, высвобождая дополнительные ресурсы.

Reg Organizer позволяет удалять программы из системы полностью, а также подчищать весь хлам, который остаются при удалении через панель управления. Максимально ускорить производительность системы поможет уникальный менеджер автозагрузки. Встроенная функция чистки дисков, поможет освободить еще больше свободного места на диске вашего компьютера. Reg Organizer позволяет легко чистить реестр, а также оптимизировать его. И это еще не все возможности программы.

Что может Reg Organizer?

  • Reg Organizer поможет полностью деинсталлировать программу, удалить ее остатки, не допуская захламление реестра и дисков компьютера.
  • Очистка автозагрузки (автозапуска) поможет удалить приложения, которые запускаются вместе с Windows. Это позволяет ускорить загрузку операционной системы Windows, а также высвободить часть ресурсов компьютера. Кроме того в разделе автозагрузки можно также удалить любые запланированные задачи.
  • Чистка дисков в автоматическом режиме позволит освободить большое количество свободного места на системном диске. Можно удалять все то что Windows сама за собой не чистит.
  • С помощью тонких настроек в Reg Organizer можно настроить работу ОС Windows под свои нужды.
  • Чистка реестра - Reg Organizer самостоятельно найдет и устранит все ненужные и ошибочные записи в системном реестре Windows, которые могут влиять на стабильность работы.
  • Reg Organizer позволяет оптимизировать реестр, проводить сжатие файлов системного реестра и может дефрагментировать его.
  • Удобный редактор реестра в Reg Organizer поможет производить различные операции с системным реестром, в том числе экспортировать, импортировать, копировать значения ключей и многое другое.
  • Легкий поиск и замена ключей в реестре - позволяет найти необходимые ключи и удалить их при необходимости. В случае, когда приложения не имеют программу деинсталляции или после его удаления приложения "вручную" в реестре остаются записи, которые могут вызывать конфликты в реестре, в этом случае будет полезна функция поиска и замены ключей реестра. Reg Organizer производит глубокий поиск и позволяет зачастую найти даже то, что другие программы не находят.
  • Reg Organizer может отслеживать все то, что делает программа при установке и в случае возникновения каких либо проблем, можно отменить все то, что попыталась внести программа при установке.
  • Программа может находить оставшиеся следы от уже удаленных программ. в случае если вы удалили программу некорректно Reg Organizer поможет очистить следы от удаленной программы.

Более подробно о всех возможностях Reg Organizer можете посмотреть в моем видео:


Скачать Reg Organizer с официального сайта вы можете по любой из кнопок скачать.

#include
#include
int regcomp(regex_t * preg , const char * regex , int cflags );
int regexec(const regex_t * preg , const char * string , size_t nmatch ,
regmatch_t pmatch , int eflags );
size_t regerror(int errcode , const regex_t * preg , char * errbuf ,
size_t errbuf_size );
void regfree(regex_t * preg );

ОПИСАНИЕ

Компилирование регулярных выражений POSIX

Функция regcomp () используется для компиляции регулярного выражения в формат, который подходит для последующих поисков с помощью regexec ().

regcomp () передаётся указатель на область хранения буферного шаблона preg , указатель на заканчивающуюся null строку regex и флаги cflags , используемые для определения типа компиляции.

Все поиски регулярных выражений должны выполняться с помощью скомпилированного буферного шаблона, поэтому regexec () должна всегда вызываться с адресом буферного шаблона, инициализированного функцией regcomp ().

Значение cflags может состоять из поразрядного or нуля или нескольких следующих значений:

REG_EXTENDED Использовать синтаксис расширенных регулярных выражений POSIX во время интерпретации regex . Если не включён этот флаг, то используется синтаксис простых регулярных выражений POSIX. REG_ICASE Не учитывать регистр. Последующие поиски regexec () с использованием данного буферного шаблона не будут зависеть от регистра. REG_NOSUB Не сообщать положение совпадений. Параметры nmatch и pmatch для regexec () игнорируются, если данный буферный шаблон был скомпилирован с этим включённым флагом. REG_NEWLINE Операторы совпадения с любым символом не совпадают с символом новой строки.

Список несовпадающих символов ([^...] ) без символа новой строки не совпадает с новой строкой.

Оператор сравнения по началу строки (^ ) совпадает с пустой строкой сразу после новой строки независимо от того, что eflags , флаги выполнения regexec (), содержат REG_NOTBOL .

Оператор сравнения по концу строки ($) совпадает с пустой строкой до символа начала строки независимо от того, что eflags содержит REG_NOTEOL .

Сравнение с регулярным выражением POSIX

Функция regexec () используется для сравнения строки, завершающейся null, с предварительно обработанным буферным шаблоном preg . Аргументы nmatch и pmatch используются для предоставления информации о местонахождении любых совпадений. Значение eflags может быть поразрядным ИЛИ одного или обоих значений REG_NOTBOL и REG_NOTEOL . Данные значения определяют поведение процесса сравнения так, как описано ниже. REG_NOTBOL Оператор сравнения по началу строки всегда завершается с ошибкой (но смотрите описанный выше флаг компиляции REG_NEWLINE ). Этот флаг может использоваться, когда в regexec () передаются отдельные части строки, и начало такой строки в данном случае не должно интерпретироваться как начало новой строки. REG_NOTEOL Оператор сравнения по концу строки всегда завершается с ошибкой (но смотрите описанный выше флаг компиляции REG_NEWLINE ).

Байтовые смещения

Если REG_NOSUB не установлен при компиляции буферного шаблона, то возможно получать информацию о положении совпадений. Значение pmatch должно быть определено так, чтобы иметь, по крайней мере, nmatch элементов. Они заполняются regexec () адресами внутристрочных совпадений. Смещения подвыражения, начинающегося с i -й открытой скобки, сохраняется в pmatch[i] . Адрес совпадения всего регулярного выражения сохраняется в pmatch (заметим, что чтобы вернуть смещения совпадений N подвыражений, значение nmatch должно быть не менее N+1 ). Любые неиспользованные элементы структуры будут содержать значение -1.

Структура regmatch_t , являющаяся типом pmatch , определена в :

Typedef struct { regoff_t rm_so; regoff_t rm_eo; } regmatch_t;

Каждый элемент rm_so , не равный -1, показывает начальное смещение следующего совпадения наибольшей подстроки внутри заданной строки. Относительный элемент rm_eo указывает на смещение конца совпадения, которое является первым символом после совпавшего текста.

Сообщение об ошибках POSIX

Функция regerror используется для преобразования кодов ошибок, которые могут быть получены от regcomp () и regexec (), в строки сообщений об ошибках.

В regerror передаются: код ошибки errcode , буферный шаблон preg , указатель на символьный буфер строки errbuf и размер буфера строки errbuf_size . Функция возвращает размер errbuf , который требуется для сохранения сообщения об ошибке в виде строки, оканчивающейся null. Если и errbuf , и errbuf_size не равны нулю, то errbuf заполняется первыми errbuf_size - 1 символами сообщения об ошибке и завершается байтом null ("\0").

Освобождение буфера шаблона POSIX

Функция regfree () освобождает память, отведённую буферному шаблону preg во время процесса компиляции с помощью regcomp ().

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функция regcomp () возвращает ноль при успешной компиляции или в противном случае код ошибки.

Функция regexec () возвращает ноль при совпадении или REG_NOMATCH , если совпадений не было.

ОШИБКИ

Функция regcomp () может возвращать следующие ошибки: REG_BADBR Неправильное использование оператора обратных ссылок. REG_BADPAT Неправильное использование операторов шаблона, таких, как операторы группы или списка. REG_BADRPT Неправильное использование операторов повторения, например, использование «*» в качестве первого символа. REG_EBRACE Непарные скобки в операторах интервала. REG_EBRACK Непарные квадратные скобки в операторах списка. REG_ECOLLATE Неправильный элемент сортировки. REG_ECTYPE Неизвестное имя класса символов. REG_EEND Потенциальная ошибка. Не определена в POSIX.2. REG_EESCAPE Конечная обратная косая черта. REG_EPAREN Непарные круглые скобки в операторах группировки. REG_ERANGE Неправильное использование оператора области: например, конец области появляется прежде её начала. REG_ESIZE Скомпилированное регулярное выражение требует буферный шаблон размером, большим 64 Кб. Это не определено в POSIX.2. REG_ESPACE Для процедур регулярных выражений закончилась память. REG_ESUBREG Неправильная обратная ссылка на подвыражение. Содержание

ereg

ereg -- парное значение регулярного выражения
Описание
int ereg (string pattern, string string, array );

Ищет парные значения string в регулярном выражении, указанном в pattern .

Если парные значения найдены для подстрок в круглых скобках pattern и функция вызывалась с третьим аргументом regs , то парные значения будут сохранены в элементах regs . $regs будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs будет содержать подстроку, начинающуюся со второй скобки и т.д. $regs будет содержать копию string .

Поиск чуствителен к регистру.

Функция возвращает true, если парное значение для pattern было найдено в string, или false, если не было найдено парных значений или произошла ошибка.

Следующий код извлекает дату в ISO формате и выводит в формате DD.MM.YYYY:

Example 1. ereg() example

If (ereg("({4})-({1,2})-({1,2})", $date, $regs)) { echo "$regs.$regs.$regs"; } else { echo "Invalid date format: $date"; }

ereg_replace

ereg_replace -- заменяет регулярное выражение
Описание
string ereg_replace (string pattern, string replacement, string string);

Эта функция сканирует string на парные значения к pattern , затем заменяет найденный текст на replacement .

Если pattern содержит подстроки в круглых скобках, то replacement может содержать подстроки вида \\ цифра , которые будут заменены текстом, совпадающим с цифровой подстрокой в скобках; \\0 обработает все содержимое строки. Может быть использовано до 9 подстрок. Скобки могут быть сгруппированы, в этом случае они считаются по открывающим скобкам. Например, следующий код напечатет "This was a test" три раза:

Пример 1. ereg_replace()

$string = "This is a test"; echo ereg_replace(" is", " was", $string); echo ereg_replace("()is", "\\1was", $string); echo ereg_replace("(()is)", "\\2was", $string);

См. также , , и .

eregi

eregi -- нечувствительный к регистру поиск парных значений в регулярных выражениях
Описание
int eregi (string pattern, string string, array );

eregi_replace

eregi_replace -- замена регулярного выражения без учета регистра
Описание
string eregi_replace (string pattern, string replacement, string string);

split

split -- разбивает строку на массив по регулярному выражению
Описание
array split (string pattern, string string, int );

Возвращает массив строк, каждая из которых является подстрокой строки, образованные разбитием этой строки на части, отделенные друг от друга pattern . Если произойдет ошибка, функция вернет false.

Для получения первых 5 полей из строки в /etc/passwd:

Будет выдано .

Эта функция может быть использована организации нечувствительного к регистру сравнения в продуктах, которые поддерживают только чувстуительные к регистру выражения.

Понравилась статья? Поделиться с друзьями: