PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic WEB разработка *NIX CouchDB Hack Python
Главная Статьи PHP Часто задаваемые вопросы (FAQ) по PHP
Главная
 Главная  Контакты
 
Программинг
Статьи Книги ЧаВО
 
xBOOKi
Fresh Books Операционки Сети
 
Поиск
-------
 
Counters
Яндекс цитирования
Rambler's Top100
-------
 
CryptDisk.4h
Программа которая позволяет создать виртуальный шифрованный логический диск.

cryptdisk.4hack.com

-------
 
 

Часто задаваемые вопросы (FAQ) по PHP


1. Общие вопросы

1.1 Что такое PHP?

(перевод документации) "PHP, что означает 'PHP: Hypertext Preprocessor' ('PHP: Предварительный Обработчик Гипертекста'), является внедряемым в HTML языком описания скриптов.

Многое из его синтаксиса было позаимствовано из C, Java и Perl с добавлением некоторых уникальных, специфичных для PHP, особенностей.

Целью создания языка является предоставление web-разработчикам возможности быстрого создания динамически генерируемых страниц."

(ответ ivan kovalenko, 2:5057/53)

1.2 Где взять PHP?

Hа сайте производителя: http://www.php.net/downloads.php

(ответ ivan kovalenko, 2:5057/53)

1.3 Как расшифровывается 'PHP'?

'PHP' - это рекурсивный акроним (аналогия с 'Linux' - 'Linux Is Not UniX') словосочетания 'PHP: Hypertext Preprocessor' ('PHP: Предварительный Обработчик Гипертекста'), что успешно отражает общую идеологию его функционирования.

До версии PHP 3.0 название было несколько иным ('PHP/FI') и расшифровывалось как 'Personal Home Page tools / Forms Interpreter' ('Утилиты для Домашней Страницы / Интерпретатор Форм').

(ответ ivan kovalenko, 2:5057/53)


2. Сетевые дела

2.1 Почему с'апложенные jpeg-файлы не отобpажаются? (бьются?) Веб-сервер - русский Апач

Все дело в том, что русский Апач по умолчанию производит перекодировку файлов.
Так, символ с кодом 0х00 он заменяет на пробел (символ с кодом 0х20).
Для борьбы с этим эффектом нужно добавить в конфигурационный файл Апача httpd.conf следующее:

    CharsetRecodeMultipartForms Off

(ответ Дмиртия Селезнева, 2:5095/6)

2.2 Как опpеделить валидность e-mail?

Функция, предложенная Maxim Matyukhin :

function valid_mail ($email) {
	if (eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-\.]+)\.([a-z]{2,3}$)",
          $email, $check)) {
		if (getmxrr($check[1] . "." . $check[2]) return "Valid";
		else return "No MX for " . $check[1] . "." . $check[2];
	}
	else return "Badly formed address";
}

Есть другой способ, использующий сокеты, предложенный Jon S. Stevens

 0 ) && ( $out == "" ) )
                        { break; }
                        else
                        { $s++;    }
                        if ( $s == 9999 ) { break; }
                    
                    } while ( $out == "" );
                    set_socket_blocking ( $fp, true );

                    fputs ( $fp, "HELO $SERVER_NAME\n" );
                    $output = fgets ( $fp, 2000 );
                    fputs ( $fp, "MAIL FROM: \n");
                    $output = fgets ( $fp, 2000 );
                    fputs ( $fp, "RCPT TO: <$email>\n" );                
                    $output = fgets ( $fp, 2000 );
                    if ( ereg ( "^250", $output ) )
                    {
                        $return[0] = true;
                    }
                    else
                    {
                        $return[0] = false;
                        $return[1] = $output;
                    }
                    fputs ( $fp, "QUIT\n" );
                    fclose( $fp );

                    if ( $return[0] == true )
                    { break; }
                }
            }
        }
    }
    return $return;
}
?> 

2.3 Как опpеделить валидность URL?

Лично я использую следующую функцию:


(ответ Дмиртия Селезнева, 2:5095/6)


3. PHP и БД

3.1 Имеем MySQL. Добавляем запись с автоинкрементным уникальным индексом. Как узнать значение последнего индекса?

Есть замечательная функция mysql_insert_id ([идент. соединения]). Возвращает целое значение, которое и есть необходимый идентификатор, сгенерированный полем AUTO_INCREMENT в последем операторе INSERT.

Подробно см. в доках по функциям PHP.

(ответ Дмиртия Селезнева, 2:5095/6)

4. PHP на Win32

4.1 Скрещивание PHP/Win32 и Apache/Win32

Предполагается, что вы уже установили PHP и Apache. Для внесения пущей ясности положим, что PHP установлен в каталоге 'C:\HTTP\php', а Apache в 'C:\HTTP\apache', причем Apache уже настроен и без лишней ругани отзывается на имя localhost, а необходимые изменения внесены в php.ini. Теперь определимся, каким образом PHP будет функционировать: в виде CGI-приложения [1] или как SAPI-модуль Apache [2] (разбор полетов на предмет различий см.)

1. Hастройка PHP в качестве CGI-приложения.

Откройте Notepad'ом (FAR'ом, NC, WinCmd, и т.п.) файл C:\HTTP\apache\conf\httpd.conf и найдите в нем и раскомментируйте (уберите значок # в начале строки) следующие строчки:

      #AddType application/x-httpd-php .php
      #AddType application/x-httpd-php-source .phps

,затем вставьте после них это:

      ScriptAlias "/__php_dir__/" "C:/HTTP/php/"
      Action application/x-httpd-php "/__php_dir__/php.exe"

2. Hастройка PHP в качестве модуля Apache.

Добавьте в файл C:\HTTP\apache\conf\httpd.conf строчки:

      LoadModule php4_module c:/HTTP/php/sapi/php4apache.dll
      AddType application/x-httpd-php .php

Тестирование

Теперь перезапустите Apache. Создайте в каталоге C:\HTTP\apache\htdocs файл test.php следующего содержания:

Запустите браузер и перейдите на http://localhost/test.php. Если ваш браузер отобразил нечто табличное с большим количеством непонятной информации, примите поздравления. Если вместо этого ваши старания увенчались 'Error 500 - Internal Server Error', попробуйте прочитать эту статью немного более внимательно.

(ответ ivan kovalenko, 2:5057/53)

Запись в файл

$f=fopen("file.txt","w");
  flock($f,LOCK_EX);
  fwrite($f,$defPack);
  fflush($f);
  flock($f,LOCK_UN);
fclose($f); 


Свежее
Резервное копирование rsync-ом
DNS Amplification (DNS усиление)
Алгоритм Шинглов — поиск нечетких дубликатов текста
Metasploit Framework. Обзор
Использование CouchDB
-------



 
Copyright © 2003-2009   Frikazoid.
Rambler's Top100