Я только что закончил проект, над которым недавно работал, и совершенно свободен. Приходите сюда и поделитесь с вами некоторыми навыками, которые я накопил!
1. Что касается первого метода перенаправления PHP: header("Location: index.php");
Способ 2: echo "<script>window.location ="$PHP_SELF";</script>";
Способ третий: echo "<META HTTP-EQUIV="Обновить" CONTENT="0; URL=index.php">"
2. Получите браузер посетителя.
функция Browse_infor() {
$browser="";$browser="";
$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
$Agent = $GLOBALS["HTTP_USER_AGENT"];
для ($i=0; $i<=7; $i++) {
if (strpos($Agent,$Browsers[$i])) {
$browser = $Браузеры[$i];
$browser="";
}
}
if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent)) {
$temp =explode("(", $Agent); $Part=$temp[0];
$temp =explode("/", $Part $browser=$temp[1];
$temp =explode(" ",$browserer=$temp[0]);
$browser =preg_replace("/([d.]+)/"," \1",$browser );
$browser = "$browser";
$browser = "Netscape Navigator";
}
if (ereg("Mozilla",$Agent) && ereg("Opera",$Agent)) {
$temp =explode("(", $Agent); $Part=$temp[1];
$temp =explode(")", $Part = $temp[1];
$temp =explode(" ",$browser);$browser=$temp[2];
$browser =preg_replace("/([d.]+)/"," \1",$browser );
$browser = "$browser";
$browser = "Опера";
}
if (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) {
$temp = взорвать("(", $Agent); $Part=$temp[1];
$temp = взорваться(";",$Part $Part=$temp[1];
$temp = взорваться(" ",$Part);$browser=$temp[2];
$browser =preg_replace("/([d.]+)/"," \1",$browser );
$browser = "$browser";
$browser = "Интернет Эксплорер";
}
если ($браузер!="") {
$browseinfo = "$browser$browser";
}еще {
$browseinfo = "Неизвестно";
}
вернуть $browseinfo;
}
//Вызов метода $browser=browseinfo() напрямую возвращает результат
3. Получаем операционную систему посетителя
функция osinfo() {
$ос="";
$Agent = $GLOBALS["HTTP_USER_AGENT"];
if (eregi('win',$Agent) && strpos($Agent, '95')) {
$os="Windows 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$os="Windows ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$os="Windows 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$os="Windows 2000";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$os="Windows NT";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$os="Windows XP";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$os="Windows 32";
}
elseif (eregi('linux',$Agent)) {
$os="Линукс";
}
elseif (eregi('unix',$Agent)) {
$os="Юникс";
}
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
$os="SunOS";
}
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
$os="IBM OS/2";
}
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
$os="Макинтош";
}
elseif (eregi('PowerPC',$Agent)) {
$os="PowerPC";
}
elseif (eregi('AIX',$Agent)) {
$os="AIX";
}
elseif (eregi('HPUX',$Agent)) {
$os="HPUX";
}
elseif (eregi('NetBSD',$Agent)) {
$os="NetBSD";
}
elseif (eregi('BSD',$Agent)) {
$os="BSD";
}
elseif (ereg('OSF1',$Agent)) {
$os="OSF1";
}
elseif (ereg('IRIX',$Agent)) {
$os="ИРИКС";
}
elseif (eregi('FreeBSD',$Agent)) {
$os="FreeBSD";
}
if ($os=='') $os = "Неизвестно";
вернуть $ОС;
}
//Вызов метода $os=os_infor()
4. Класс формата файла
$mime_types = array(;
'gif' => 'изображение/гиф',
'jpg' => 'изображение/jpeg',
'jpeg' => 'изображение/jpeg',
'jpe' => 'изображение/jpeg',
'bmp' => 'изображение/bmp',
'png' => 'изображение/png',
'tif' => 'изображение/tiff',
'tiff' => 'изображение/tiff',
'pict' => 'изображение/x-pict',
'pic' => 'изображение/x-pict',
'pct' => 'изображение/x-pict',
'tif' => 'изображение/tiff',
'tiff' => 'изображение/tiff',
'psd' => 'image/x-photoshop',
'swf' => 'application/x-shockwave-flash',
'js' => 'приложение/x-javascript',
'pdf' => 'приложение/pdf',
'ps' => 'приложение/постскриптум',
'eps' => 'приложение/постскриптум',
'ai' => 'приложение/постскриптум',
'wmf' => 'application/x-msmetafile',
'css' => 'text/css',
'htm' => 'текст/html',
'html' => 'текст/html',
'txt' => 'текст/обычный',
'xml' => 'текст/xml',
'wml' => 'текст/wml',
'wbmp' => 'image/vnd.wap.wbmp',
'mid' => 'audio/midi',
'wav' => 'аудио/wav',
'mp3' => 'аудио/mpeg',
'mp2' => 'audio/mpeg',
'avi' => 'video/x-msvideo',
'mpeg' => 'видео/mpeg',
'mpg' => 'видео/mpeg',
'qt' => 'видео/QuickTime',
'mov' => 'video/quicktime',
'lha' => 'application/x-lha',
'lzh' => 'application/x-lha',
'z' => 'приложение/x-сжатие',
'gtar' => 'application/x-gtar',
'gz' => 'приложение/x-gzip',
'gzip' => 'приложение/x-gzip',
'tgz' => 'приложение/x-gzip',
'tar' => 'приложение/x-tar',
'bz2' => 'приложение/bzip2',
'zip' => 'приложение/zip',
'arj' => 'приложение/x-arj',
'rar' => 'application/x-rar-compressed',
'hqx' => 'application/mac-binhex40',
'sit' => 'приложение/х-штуки',
'bin' => 'application/x-macbinary',
'uu' => 'text/x-uuencode',
'uue' => 'text/x-uuencode',
'latex' => 'application/x-latex',
'ltx' => 'приложение/x-латекс',
'tcl' => 'приложение/x-tcl',
'pgp' => 'приложение/pgp',
'asc' => 'приложение/pgp',
'exe' => 'приложение/x-msdownload',
'doc' => 'приложение/msword',
'rtf' => 'приложение/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
'mdb' => 'приложение/x-msaccess',
'wri' => 'application/x-mswrite',
);
5. Создайте документ Excel с помощью php
<?
header("Тип контента:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
эхо "test1t";
эхо "test2tn";
эхо "test1t";
эхо "test2tn";
эхо "test1t";
эхо "test2tn";
эхо "test1t";
эхо "test2tn";
эхо "test1t";
эхо "test2tn";
эхо "test1t";
эхо "test2tn";
?>
//Измените соответствующий заголовок файла на выходные форматы файлов,
такие как .doc.
Способ первый:
//$db->rows[$i][date] — значение поля даты и времени в базе данных.
$сегодня=время();
$theDay=date("Ymd H:i:s",$today-24*3600);
$newTag=$db->rows[$i][date]>=$theDay?"<img src='../image/newinfor.gif'>":"";
Способ второй:
$newTag=$db->rows[$i][date]>=date("ГГ 00:00:00")?"<img src='../image/newinfor.gif'>":"";
7. Пример инкапсуляции базы данных
<?php
//------------------------------------------------ ------------------------------------------
// Конструктор ※Database(), начальные параметры базы данных
// ※Запрос Select()
// ※GetRows() возвращает общее количество запрошенных записей
// ※Insert() вставляем запись
// Обновление ※Update()
// ※Delete() удалить
// ※Halt() прерывает и отображает сообщение об ошибке*/
//------------------------------------------------ ------------------------------------------
define("DATABASETYPE","1"); //Определение типа базы данных: 1 — MySql; 2 — SQL Server; 3 — Oracle; 4 — Odbc;
define("SERVER","localhost"); //Имя хоста или IP-адрес сервера базы данных
define("DATABASE","dbName"); //Имя подключаемой базы данных
define("USER","tableName"); //Имя пользователя, используемое для подключения к базе данных
define("ПАРОЛЬ","paswd"); //Пароль, используемый для подключения к базе данных
база данных класса {
вар $dbLink; //Дескриптор соединения;
вар $result; // дескриптор запроса
var $insId; //Insert() успешно возвращает значение столбца AUTO_INCREMENT;
var $rows; // Возвращаем массив данных;
var $numRows; // Возвращаем количество данных
вар $dbHost, $dbUser, $userPassword, $database;
вар $dbType=DATABASETYPE;
var $msgFlag = "yes" ; //да: показать сообщение Mysql ; нет: умереть, показав "Halted."
function Database($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){
переключатель($this->dbType){
случай 1:
$this->dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// or die("Невозможно подключиться к удаленному хосту!");
@mysql_select_db($database,$this->dbLink);// или умрет («Невозможно подключиться к удаленному хосту!»);
перерыв;
случай 2:
перерыв;
}
вернуть истину;
}
/*SQL:Select() возвращает false и не дает результата*/
функция Select($table,$columns,$condition=1){
$sql="выберите $столбцы из $table, где $condition";
//эхо $sql."<br>";
$this->result=@mysql_query($sql,$this->dbLink);
unset($this->rows);
если($это->результат){
$ я = 0;
if(!($this->rows=array("$i"=>@mysql_fetch_array($this->result))))
вернуть ложь;
if(($this->numRows=@mysql_num_rows($this->result))==0)
вернуть ложь;
while( $tempRows=@mysql_fetch_array($this->result )){
array_push($this->rows,$tempRows);
}
}еще{
$this->Halt($sql);
вернуть ложь;
}
вернуть истину;
}
/*SQL:GetRows() возвращает общее количество запрошенных записей*/
функция GetRows($table,$condition=1){
$sql="выберите счетчик(1) как счетчик из $таблицы, где $условие";
//эхо $sql."<br>";
$this->result=@mysql_query($sql,$this->dbLink);
если($это->результат){
$temp=@mysql_fetch_array($this->result );
$this->numRows=$temp[count];
}еще{
$this->Halt($sql);
вернуть ложь;
}
верните $this->numRows;
}
/*SQL:Insert()*/
функция Insert($table,$columns,$values){
$sql="вставить в $table ($columns) значения ($values)";
//эхо $sql;
$this->result=@mysql_query($sql,$this->dbLink);
если ($this->результат)
$this->insId=@mysql_insert_id($this->dbLink);
еще{
$this->Halt($sql);
вернуть ложь;
}
вернуть истину;
}
/*SQL:Update()*/
функция Update($table,$settings,$condition){
$sql="обновить $table, установить $settings, где $condition";
//эхо $sql;
$this->result=@mysql_query($sql,$this->dbLink);
если ($this->результат)
$this->numRows=@mysql_affected_rows($this->result);
еще{
$this->Halt($sql);
вернуть ложь;
}
вернуть истину;
}
/*SQL:Удалить*/
функция Удалить($таблица,$условие){
$sql="удалить из $table, где $condition";
$this->result=@mysql_query($sql,$this->dbLink);
если ($this->результат)
$this->numRows=@mysql_affected_rows($this->result);
еще{
$this->Halt($sql);
вернуть ложь;
}
вернуть истину;
}
/*Halt():сообщение об ошибке */
функция Остановка($msg){
if($this->msgFlag=="да"){
printf("<b>Ошибка запроса к базе данных:</b> %s<br>n", $msg);
printf("<b>Ошибка MySql:</b> %s<br>n",mysql_error());
}еще
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>";//Настройте файл сообщений об ошибках
вернуть ложь;
}
}
переключатель($db->dbType){
случай 1:
@mysql_close();
перерыв;
случай 2:
перерыв;
}
$db = новая база данных();
?>