لقد انتهيت للتو من المشروع الذي كنت أعمل عليه مؤخرًا وأنا حر تمامًا. تعال هنا وشارك بعض المهارات التي اكتسبتها معك!
1. بخصوص طريقة إعادة التوجيه PHP الأولى: header("Location: Index.php");
الطريقة الثانية: echo "<script>window.location ="$PHP_SELF";</script>";
الطريقة الثالثة: echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";
2. احصل على متصفح الزائر
وظيفة Browse_infor() {
$browser='';$browserver='';
$Browsers =array("Lynx"،"MOSAIC"، "AOL"، "Opera"، "JAVA"، "MacWeb"، "WebExplorer"، "OmniWeb")؛
$Agent = $GLOBALS["HTTP_USER_AGENT"];
لـ ($i=0; $i<=7; $i++) {
إذا (strpos($Agent,$Browsers[$i])) {
$browser = $Browsers[$i];
$متصفح الخادم = "";
}
}
إذا (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent)) {
$temp =explode("("، $Agent); $Part=$temp[0];
$temp =explode("/", $Part); $browserver=$temp[1];
$temp =explode(" ",$browserver=$temp[0]);
$browserver =preg_replace("/([d.]+)/"، " \1"،$browserver );
$browserver = " $browserver";
$browser = "متصفح نتسكيب";
}
إذا (ereg("Mozilla",$Agent) && ereg("Opera",$Agent)) {
$temp =explode("("، $Agent); $Part=$temp[1];
$temp =explode(")", $Part); $browserver=$temp[1];
$temp =explode(" ",$browserver);$browserver=$temp[2];
$browserver =preg_replace("/([d.]+)/"، " \1"،$browserver );
$browserver = " $browserver";
$browser = "الأوبرا";
}
إذا (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent)) {
$temp =تفجير("("، $Agent); $Part=$temp[1];
$temp =تفجير(";",$Part);
$temp =تفجير(" ",$Part);$browserver=$temp[2];
$browserver =preg_replace("/([d.]+)/"، " \1"،$browserver );
$browserver = " $browserver";
$browser = "إنترنت إكسبلورر";
}
إذا ($المتصفح!="") {
$browseinfo = "$browser$browserver";
}آخر {
$browseinfo = "غير معروف";
}
إرجاع معلومات التصفح $؛
}
// اتصل بالطريقة $browser=browseinfo(); وأرجع النتيجة مباشرة
3. احصل على نظام تشغيل الزائر
وظيفة أوسينفو () {
$os = "";
$Agent = $GLOBALS["HTTP_USER_AGENT"];
إذا (eregi('win',$Agent) && strpos($Agent, '95')) {
$os="ويندوز 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$os="ويندوز ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$os="ويندوز 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$os="ويندوز 2000";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$os="ويندوز NT";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$os="ويندوز إكس بي";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$os="ويندوز 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="إيكس";
}
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="IRIX";
}
elseif (eregi('FreeBSD',$Agent)) {
$os="FreeBSD";
}
إذا ($os=='') $os = "غير معروف";
إرجاع نظام التشغيل $؛
}
// طريقة الاتصال $os=os_infor();
4. فئة تنسيق الملف
$mime_types = array(
'gif' => 'صورة/gif',
'jpg' => 'صورة/jpeg',
'jpeg' => 'صورة/jpeg',
'jpe' => 'صورة/jpeg',
'bmp' => 'صورة/bmp',
'png' => 'صورة/png',
'tif' => 'صورة/شجار',
'tiff' => 'صورة/مشاجرة',
'pict' => 'صورة/x-pic',
'pic' => 'صورة/x-pic',
'pct' => 'صورة/x-pict',
'tif' => 'صورة/شجار',
'tiff' => 'صورة/مشاجرة',
'psd' => 'image/x-photoshop',
'swf' => 'application/x-shockwave-flash',
'js' => 'application/x-javascript',
'pdf' => 'application/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' => 'فيديو/وقت سريع',
'mov' => 'فيديو/وقت سريع',
'lha' => 'application/x-lha',
'lzh' => 'application/x-lha',
'z' => 'التطبيق/ضغط x',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'tgz' => 'application/x-gzip',
'tar' => 'application/x-tar',
'bz2' => 'application/bzip2',
'zip' => 'application/zip',
'arj' => 'application/x-arj',
'rar' => 'application/x-rar-compressed',
'hqx' => 'application/mac-binhex40',
'sit' => 'application/x-stuffit',
'bin' => 'application/x-macbinary',
'uu' => 'text/x-uuencode',
'uue' => 'text/x-uuencode',
'latex' => 'application/x-latex',
'ltx' => 'application/x-latex',
'tcl' => 'application/x-tcl',
'pgp' => 'application/pgp',
'تصاعدي' => 'التطبيق/pgp',
'exe' => 'التطبيق/x-msdownload',
'doc' => 'application/msword',
'rtf' => 'التطبيق/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint'،
'mdb' => 'application/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] هي قيمة حقل التاريخ والوقت في قاعدة البيانات.
$today=time();
$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("Ymd 00:00:00")؟"<img src='../image/newinfor.gif'>":":";
7. مثال لتغليف قاعدة البيانات
<?php
//---------------------------------------------------------------- ------------------------------------------
// ※ مُنشئ قاعدة البيانات () والمعلمات الأولية لقاعدة البيانات
// ※اختر () استعلام
// ※GetRows() يُرجع العدد الإجمالي للسجلات التي تم الاستعلام عنها
// ※إدراج () إدراج السجل
// ※تحديث () التحديث
// ※حذف () حذف
// ※Halt() يقاطع ويعرض رسالة خطأ*/
//---------------------------------------------------------------- ------------------------------------------
تعريف ("DATABASETYPE"، "1")؛ // تحديد نوع قاعدة البيانات: 1 هو MySql؛ 2 هو SQL Server؛ 3 هو Odbc؛
تعريف ("SERVER"، "localhost")؛ // اسم المضيف أو عنوان IP لخادم قاعدة البيانات
تعريف ("DATABASE"، "dbName")؛ // اسم قاعدة البيانات المراد توصيلها
تعريف("USER"،"tableName")؛ // اسم المستخدم المستخدم للاتصال بقاعدة البيانات
تعريف ("PASSWORD"، "paswd")؛ // كلمة المرور المستخدمة للاتصال بقاعدة البيانات
قاعدة بيانات فئة {
var $dbLink; //مقبض الاتصال
فار $result; // مقبض الاستعلام
var $insId; //Insert() يُرجع بنجاح قيمة العمود AUTO_INCREMENT
var $rows; // إرجاع مصفوفة البيانات
var $numRows; // إرجاع عدد البيانات
فار $dbHost، $dbUser، $userPassword، $database؛
var $dbType=DATABASETYPE;
var $msgFlag = "yes" ; //yes:إظهار رسالة Mysql؛ no: الموت عن طريق العرض "Halted."
قاعدة بيانات الوظيفة($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){
التبديل($هذا->dbType){
الحالة 1:
$this->dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// أو die("لا يمكن الاتصال بالمضيف البعيد!");
@mysql_select_db($database,$this->dbLink);// أو يموت ("لا يمكن الاتصال بالمضيف البعيد!");
استراحة؛
الحالة 2:
استراحة؛
}
عودة صحيحة؛
}
/*SQL:Select() تُرجع خطأ ولا تحتوي على نتيجة*/
دالة تحديد($table,$columns,$condition=1){
$sql="حدد $columns من $table حيث $condition ";
// صدى $sql."<br>";
$this->result=@mysql_query($sql,$this->dbLink);
unset($this->rows);
إذا($هذا->النتيجة){
$i=0;
إذا(!($this->rows=array("$i"=>@mysql_fetch_array($this->result))))
عودة كاذبة.
إذا (($this->numRows=@mysql_num_rows($this->result))==0)
عودة كاذبة.
بينما( $tempRows=@mysql_fetch_array($this->result )){
array_push($this->rows,$tempRows);
}
}آخر{
$this->Halt($sql);
عودة كاذبة.
}
عودة صحيحة؛
}
/*SQL:GetRows() تُرجع العدد الإجمالي للسجلات التي تم الاستعلام عنها*/
الدالة GetRows($table,$condition=1){
$sql="select count(1) as count from $table Where $condition";
// صدى $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:إدراج ()*/
وظيفة إدراج($جدول،$أعمدة،$قيم){
$sql = "أدخل في قيم جدول $ ($ أعمدة) (قيم $)" ؛
// صدى $sql؛
$this->result=@mysql_query($sql,$this->dbLink);
إذا (هذا->النتيجة)
$this->insId=@mysql_insert_id($this->dbLink);
آخر{
$this->Halt($sql);
عودة كاذبة.
}
عودة صحيحة؛
}
/*SQL:تحديث()*/
تحديث الوظيفة($table,$settings,$condition){
$sql="update $table set $settings Where $condition";
// صدى $sql؛
$this->result=@mysql_query($sql,$this->dbLink);
إذا (هذا->النتيجة)
$this->numRows=@mysql_affected_rows($this->result);
آخر{
$this->Halt($sql);
عودة كاذبة.
}
عودة صحيحة؛
}
/*SQL:حذف*/
وظيفة حذف($جدول،$شرط){
$sql="حذف من $table حيث $condition";
$this->result=@mysql_query($sql,$this->dbLink);
إذا (هذا->النتيجة)
$this->numRows=@mysql_affected_rows($this->result);
آخر{
$this->Halt($sql);
عودة كاذبة.
}
عودة صحيحة؛
}
/*توقف ():رسالة خطأ*/
توقف الوظيفة($msg){
إذا($this->msgFlag=="yes"){
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 = قاعدة بيانات جديدة () ؛
?>