目次
http基础
变量
服务器信息
表单处理
ホームページ php教程 php手册 第7章 PHP学习 WEB技术

第7章 PHP学习 WEB技术

Jun 06, 2016 pm 08:08 PM
php web 勉強 テクノロジー

php被设计为一种web脚本语言,大多数的时候还是用于web开发:表单(form),会话(session)和重定向(redirection)等概念。你将学会如何访问表单参数和上传文件,如何发送cookie和在浏览器中转向,如何使用session等。 http基础 web的运行基础是基于http协议的

php被设计为一种web脚本语言,大多数的时候还是用于web开发:表单(form),会话(session)和重定向(redirection)等概念。你将学会如何访问表单参数和上传文件,如何发送cookie和在浏览器中转向,如何使用session等。

http基础

web的运行基础是基于http协议的(超文本传输协议),http协议规定了浏览器如何向web服务器请求文件,以及服务器如何根据请求返回文件。为了理解本章中将阐述的各种技术,你需要对http有一个基本的了解。想更多了解http请看

当一个web浏览器请求一个web页面时,会发送一个http请求消息给web服务器: 这个请求总是包含某些头部信息(header information)有时也会有消息主体(body)。web服务器将返回一个回应消息作为相应,回应消息也包含头部信息和消息主题。http请求的第一行通常是这样的:

GET /index.html HTTP/1.1 
ログイン後にコピー

折行制定了一个称为方法(method)的http命令,其后指明了文档的地址和正在使用的http协议版本。本例中,请求使用GET方法,并采用http1.1协议请求名称为index.html的服务器端文档。在第一行之后,请求还可能包含一些可选择的头部信息,给服务器附加的数据,如:

User-Agent:Mozilla/5.0 (Windows 2000; U) Opear 6.0 [en]  
Accept: image/gif, image/jpeg, text/*, */*
ログイン後にコピー

User-Agent头提供浏览器相关的信息,而Accept头制定了浏览器接受的MIME类型。在所有的头部信息之后,请求会包含一个空白的行,说明头部信息已经结束。请求也可以包含附加的数据,如果采用了相对应的方法。(如:用POST方)如果请求不包含任何数据,它会以一行空白行结束。

web服务器请求后,处理并且返回一个响应。响应的第一行看起来应该是这样:

HTTP/1.1 200 ok
ログイン後にコピー

这一行制定了协议的版本,状态码,和状态码的描述。本例中状态码为”200″,说明请求成功。在状态之后,响应消息包含了一些头部信息,用于向客户端浏览器提供附加信息。如:

Date: Sat, 200 Jan 2006 20:25:12 GMT  
Server: Apache 1.3.33 (Unix) mod_perl/1.26 PHP/5.0.5  
Content-Type:text/html  
Content-Length:141
ログイン後にコピー

Server这一行提供了Web服务器软件的响应信息;Content-Type指定响应中数据的MIME类型。在这些头部信息之后是一个空白行,如果请求成功,空白行之后就是所请求的数据

最常用的两种http方法是get和post。get方法用于从服务器中获得文档,图像或者数据库检索结果的信息。post则用于向服务器发送信息,例如:信用卡的卡号或者其他信息提交到服务器。

变量

本节介绍3种php脚本来获取服务器环境信息,请求信息(包括表单参数和cookie)的方法。我们通常称这些信息为EGPCS.

如果php.ini文件中的register_globals选项被启用时,php就会为每一个表单参数、请求信息以及服务器环境创建一个独立的全局变量。这个功能非常方便,它可以让浏览器为你的程序初始化任何变量。

如果胡洛register_gloabls设置,php将创建6个包含EGPCS信息的全局数组。

这些全局数组为:

  • $_COOKIE 包含作为请求的一部分进行传递的所有的cookie值,数组的键名是cookie名称
  • $_GET 包含作为GET请求的一部分进行传递的参数,数组的键名是表单参数的名称。
  • $_POST 包含作为post请求的一部分进行传递的参数,数组的键名是表单参数的名称。
  • $_FILES 包含所有上传的文件的信息、
  • $_SERVER 包含很多服务器相关的有用信息
  • $_ENV 包含环境变量值,键名是环境变量的名称。这些变量不但是全局的,而且在函数的定义中也是可见的。
  • $_REQUEST数组也有php自动生成,包含了$_GET,$_POST,$_COOKIE 三个数组的所有元素。

php还会创建一个$_SERVER['PHP_SELF']变量,用于存放当前脚本的路径和名称(相对与文档根目录)

服务器信息

$_SERVER 数组包含很多服务器相关的有用信息。其中大部分信息来自于CGI规范,中所要求的环境变量。

  • SERVER_SOFTWARE 标示服务器的字符串:”Apache/1.3.33(Unix)mod_perl/1.26 PHP/5.0.5″
  • SERVER_NAME 主机名,DNS别名,或者ip地址:’www.dirt-lift.net’
  • GATEWAY_INTERFACE 遵循cgi标准的版本号
  • SERVER_PROTOCOL 请求协议的名称和版本:http/1.1
  • SERVER_PORT 发送到服务器端口号
  • REQUEST_METHOD 客户端获取文档的方法,get
  • PATH_INFO 客户端发送的扩展路径,如’/list/users’
  • PATH_TRANSLATED
  • HTTP_USER_AGENT
  • HTTP_REFERER

表单处理

上传文件,

<?php define("SECTION","-------------------------\n");
    if(is_uploaded_file($_FILES['uploadfile']['tmp_name'])){
        //图片临时存放路径在php.ini的uploa_temp_dir选项指定。
        var_dump($_FILES['uploadfile']);
        echo "上传成功";
        move_uploaded_file($_FILES['uploadfile']['tmp_name'],'path/to/put/file/$file');
    }   
?>
ログイン後にコピー

图片的结果:

array(5) {
  ["name"]=>
  string(15) "men_pic_big.gif"
  ["type"]=>
  string(9) "image/gif"
  ["tmp_name"]=>
  string(14) "/tmp/phppiB0P2"
  ["error"]=>
  int(0)
  ["size"]=>
  int(2081)
}
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

See all articles