Jadual Kandungan
令PHP初学者的困惑的10个知识点
【8】isset()和empty()的区别
【9】mysql查询语句包含有关键字
【10】通过HTTP协议一次上传多个文件的方法
Rumah pembangunan bahagian belakang tutorial php 令PHP初学者的困惑的10个知识点

令PHP初学者的困惑的10个知识点

Jun 20, 2016 pm 01:03 PM
kemahiran php

令PHP初学者的困惑的10个知识点

【1】页面之间无法传递变量 get,post,session

在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。

注:PHP中的超全局变量
从PHP 4.2.0 开始,register_globals 的默认值为 off,这样一来,以前的很多可以直接使用的变量,如 $PHP_SELF 或者你设定的SESSION变量都不能用 “$变量名”的形式访问了,这可能会给你带来很多不变,但却有助于安全性的提高。访问这些变量,你需要使用PHP 超全局变量,如下:

 

$_SERVER
变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组。以前的$PHP_SELF对应$_SERVER['PHP_SELF'],你可以使用phpinfo来查看你的$_SERVER变量。

$_GET
经由 HTTP GET 方法提交至脚本的变量。类似于旧数组 $HTTP_GET_VARS 数组。

$_POST
经由 HTTP POST 方法提交至脚本的变量。类似于旧数组 $HTTP_POST_VARS 数组。

$_COOKIE
经由 HTTP Cookies 方法提交至脚本的变量。类似于旧数组 $HTTP_COOKIE_VARS 数组。

$_SESSION
当前注册给脚本会话的变量。类似于旧数组 $HTTP_SESSION_VARS 数组。

$_FILES
经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组。

$_ENV
执行环境提交至脚本的变量。类似于旧数组 $HTTP_ENV_VARS 数组。
对于$_FILES变量:(文件域字段为“myfile”)

$_FILES['myfile']['name']
客户端机器文件的原名称(包括路径)。

$_FILES['myfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。

$_FILES['myfile']['size']
已上传文件的大小,单位为字节。

$_FILES['myfile']['tmp_name']
文件被上传后在服务端储存的临时文件名(包括路径)。

$_FILES['myfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

当 php.ini 中的 register_globals 被设置为 on 时,$myfile_name 等价于 $_FILES['myfile']['name'],$myfile_type 等价于 $_FILES['myfile']['type']等。


【2】win32下的session不能正常工作


php.ini默认的session.save_path = /tmp
这显然是linux下的配置,win32下php无法读写session文件导致session无法使用,把它改成一个绝对路径就可以了,例如session.save_path = c:\windows\temp。

【3】显示错误信息


当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是探测或者屏蔽,例如显示$foo,可以if(isset($foo)) echo $foo 或者echo @$foo

【4】header already sent


这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING或者ECHO了2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。

【5】更改php.ini后没有变化


重新启动web server,比如IIS,Apache等等,然后才会应用最新的设置。

【6】有时候sql语句不起作用

对数据库操作失败。最简便的调试方法,echo那句sql,看看变量的值是否能得到。

【7】include和require的区别


两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出。根据测试,win32平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。或许*nux下情况不同,暂时还没测试。如果一个文件不想被包含多次可以使用include_once或require_once## 读取,写入文档数据:
 

function r($file_name) {
$filenum=@fopen($file_name,"r");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name));
@fclose($filenum);
return $file_data;
}
function w($file_name,$data,$method="w"){
$filenum=@fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
Salin selepas log masuk

【8】isset()和empty()的区别


两者都是测试变量用的,但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空。如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示。如果一个变量被赋空值,$foo=""或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。要注销一个变量,可以用 unset($foo)或者$foo=NULL。

【9】mysql查询语句包含有关键字


php查询mysql的时候,有时候mysql表名或者列名会有关键字,这时候查询会有错误。例如表名是order,查询时候会出错,简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别,例如select * from `order`。

【10】通过HTTP协议一次上传多个文件的方法


有两个思路,是同一个方法的两种实现。具体程序还需自己去设计
1. 在form中设置多个文件输入框,用数组命名他们的名字,如下:

< form action="" method="post" >
< input name="usefile[]" type="file" >
< input name="usefile[]" type="file" >
< input name="usefile[]" type="file" >
< /form >
Salin selepas log masuk


这样,在服务器端做以下测试

echo " < pre > ";
print_r($_FILES);
echo " < /pre > ";
Salin selepas log masuk
Salin selepas log masuk

2. 在form中设置多个文件输入框,但名字不同,如下:

< form action="" method="post" >
< input name="usefile_a" type="file" >
< input name="usefile_b" type="file" >
< input name="usefile_c" type="file" >
< /form >
Salin selepas log masuk


在服务器端做同样测试:

echo " < pre > ";
print_r($_FILES);
echo " < /pre > ";
Salin selepas log masuk
Salin selepas log masuk

 


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang teknik muat naik dan muat turun fail dalam PHP Penjelasan terperinci tentang teknik muat naik dan muat turun fail dalam PHP Jun 25, 2023 pm 05:57 PM

PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular yang digunakan secara meluas dalam pembangunan laman web. Antaranya, memuat naik dan memuat turun fail adalah salah satu fungsi laman web yang biasa digunakan, dan PHP menyediakan pelbagai fungsi dan teknik untuk melaksanakan fungsi ini. Dalam artikel ini, kami akan memperkenalkan secara terperinci teknik muat naik dan muat turun fail dalam PHP supaya anda boleh membangunkan laman web anda dengan lebih cekap. Muat naik fail Muat naik fail merujuk kepada menghantar fail dari komputer tempatan ke pelayan jauh Selepas memuat naik fail, kami boleh menyimpan, memproses dan memaparkan fail ini. Dalam PHP

Kemahiran memanggil antara muka PHP Kuaishou API: cara mengendalikan maklumat ralat yang dikembalikan oleh antara muka Kemahiran memanggil antara muka PHP Kuaishou API: cara mengendalikan maklumat ralat yang dikembalikan oleh antara muka Jul 20, 2023 pm 11:22 PM

Petua panggilan antara muka API PHP Kuaishou: Cara mengendalikan mesej ralat yang dikembalikan oleh antara muka Apabila menggunakan PHP untuk memanggil antara muka API Kuaishou, kita sering menghadapi situasi di mana antara muka mengembalikan ralat. Untuk maklumat ralat yang dikembalikan oleh antara muka pemprosesan, kami perlu menyediakan pemprosesan dan maklum balas yang sesuai untuk meningkatkan kestabilan dan pengalaman pengguna aplikasi. Artikel ini akan memperkenalkan beberapa teknik untuk mengendalikan maklumat ralat yang dikembalikan oleh antara muka dan memberikan contoh kod yang sepadan. Gunakan try-catch untuk menangkap pengecualian Apabila memanggil antara muka API, beberapa ralat pengecualian mungkin berlaku.

Penjelasan terperinci tentang kaedah aplikasi teknologi paging dalam PHP dalam rangka kerja Penjelasan terperinci tentang kaedah aplikasi teknologi paging dalam PHP dalam rangka kerja Jun 09, 2023 am 11:40 AM

Dengan perkembangan pesat Internet, semakin banyak laman web perlu melaksanakan fungsi paging data untuk meningkatkan pengalaman menyemak imbas pengguna. Dalam pembangunan Web, PHP adalah salah satu bahasa pengaturcaraan sebelah pelayan yang paling popular, dan fungsi halaman data adalah teknologi yang sangat diperlukan dalam pembangunan PHP. Artikel ini akan memperkenalkan kaedah aplikasi teknologi paging dalam PHP dalam rangka kerja, dan membandingkan kelebihan dan kekurangan penyelesaian paging yang berbeza. 1. Kaedah paging PHP tradisional Dalam pembangunan PHP tradisional, melaksanakan fungsi paging data memerlukan menulis banyak kod, dan ia perlu diulang dalam setiap halaman.

Ketahui lebih lanjut tentang menggantikan baris baharu dalam PHP Ketahui lebih lanjut tentang menggantikan baris baharu dalam PHP Mar 20, 2024 pm 06:42 PM

Menggantikan baris baharu dalam PHP adalah masalah yang sering dihadapi dalam pembangunan sebenar, terutamanya semasa memproses data teks. Watak baris baharu mungkin dinyatakan secara berbeza dalam sistem pengendalian yang berbeza Ia biasanya "" dalam sistem Windows dan "" dalam sistem Linux. Oleh itu, kami perlu memproses pemisah baris secara seragam untuk memastikan data teks berada dalam format biasa. Artikel ini akan menyelidiki teknik menggantikan baris baharu dalam PHP dan memberikan contoh kod khusus. 1. Gunakan fungsi terbina dalam PHP untuk memproses baris baharu PHP menyediakan beberapa fungsi terbina dalam.

Petua pengaturcaraan PHP: Cara cepat mencari nombor yang hilang dalam tatasusunan Petua pengaturcaraan PHP: Cara cepat mencari nombor yang hilang dalam tatasusunan Mar 01, 2024 pm 04:27 PM

Petua Pengaturcaraan PHP: Cara Cepat Mencari Nombor Hilang dalam Tatasusunan Dalam pengaturcaraan, anda sering menghadapi situasi di mana anda perlu menyemak sama ada nombor tertentu tiada dalam tatasusunan. Pada masa ini, kita memerlukan cara yang cepat dan berkesan untuk mencari nombor yang hilang dalam tatasusunan supaya ia boleh diproses tepat pada masanya. Artikel ini akan memperkenalkan teknik pengaturcaraan berasaskan PHP, menggunakan contoh kod khusus untuk menunjukkan cara mencari nombor yang hilang dalam tatasusunan dengan cepat. 1. Kaedah 1: Gunakan gelung untuk melintasi tatasusunan Mula-mula, kita boleh menyemak nombor yang hilang dalam tatasusunan dengan menggelung melalui tatasusunan. Langkah-langkah tertentu

Petua Pengaturcaraan PHP: Cara Mengendalikan Penskalaan Imej Petua Pengaturcaraan PHP: Cara Mengendalikan Penskalaan Imej Aug 19, 2023 am 10:36 AM

Kemahiran pengaturcaraan PHP: Cara mengendalikan penskalaan imej Dalam reka bentuk web moden, imej adalah bahagian penting, dan penskalaan imej adalah salah satu operasi biasa. Sama ada ia memaparkan koleksi imej atau bertindak balas kepada keperluan peranti dengan saiz yang berbeza, penskalaan imej memainkan peranan penting. Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan PHP untuk mengendalikan penskalaan imej, dan melampirkan contoh kod untuk rujukan. 1. Gunakan perpustakaan GD untuk penskalaan imej Pustaka GD ialah perpustakaan pemprosesan imej yang berkuasa dalam PHP. Kami boleh menggunakannya untuk melaksanakan fungsi penskalaan imej. Pertama, pastikan

Analisis kemahiran pemprosesan koncurrency tinggi PHP Analisis kemahiran pemprosesan koncurrency tinggi PHP Aug 10, 2023 pm 06:53 PM

Analisis Kemahiran Pemprosesan Selaras Tinggi PHP Dengan perkembangan Internet, keperluan untuk lawatan serentak ke laman web semakin tinggi dan lebih tinggi. Sebagai bahasa pengaturcaraan untuk membangunkan laman web, PHP memerlukan beberapa kemahiran pemprosesan khas untuk meningkatkan prestasi dan kestabilan apabila berhadapan dengan tekanan capaian serentak yang tinggi. Artikel ini akan memperkenalkan beberapa teknik pemprosesan konkurensi tinggi PHP dan memberikan contoh kod. Gunakan PHP-FMPPHP-FPM (FastCGIProcessManager) ialah pengurus proses yang disediakan secara rasmi oleh PHP, yang boleh

Kuasai kemahiran pelaksanaan 50 fungsi dan perkongsian pengalaman dalam pembangunan PHP Kuasai kemahiran pelaksanaan 50 fungsi dan perkongsian pengalaman dalam pembangunan PHP Nov 22, 2023 pm 04:51 PM

Kuasai kemahiran pelaksanaan 50 fungsi dan perkongsian pengalaman dalam pembangunan PHP Sebagai pembangun PHP, kami sentiasa mengejar pelaksanaan kod yang cekap dan berkualiti tinggi. Untuk meningkatkan kecekapan pembangunan dan kualiti kod, kami perlu mengumpul beberapa pengalaman dan kemahiran untuk menghadapi pelbagai keperluan dan cabaran pembangunan yang kompleks. Dalam artikel ini, saya akan berkongsi 50 petua dan pengalaman pembangunan PHP untuk melaksanakan pelbagai fungsi, dengan harapan dapat membantu semua orang dalam perjalanan pembangunan PHP mereka. Gunakan rangka kerja yang sesuai: Memilih dan membiasakan diri dengan rangka kerja PHP yang sesuai dengan anda boleh meningkatkan kecekapan pembangunan dan

See all articles