搜索
首页后端开发php教程php学习正式起航(5)

php学习正式起航(5)

Dec 28, 2016 am 09:19 AM
php

现在开始php与html的混编之路
php文件可以嵌入html代码,但html文件不可嵌入php代码,因为html是静态文件嘛

说说 PHP 表单和用户输入

PHP 的 $_GET 和 $_POST 用于获取表单提交的值

下面新建一个php文件 index.php

<html>
<body>
<form action="index.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

现在还是纯html代码 表单提交给自身,提交方式为post

现在加入php代码

<html>
<body> <form action="index.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> </body>
</html>
<?php
echo "Name:".$_POST[&#39;name&#39;];
echo "Age:".$_POST[&#39;age&#39;];
?>


php可以加在文件的任何地方,不需要在html标签里面
最后打印的就是你文本框输入的结果

如果action为空,也是默认提交给文件自身

$_POST['name']; 可以用双引号可以单引号,不加引号也能(但会提醒注意)
post提交方式不能用$_GET获取

下面用$_GET获取表单的值

<html>
<body> <form action="" method="get">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> </body>
</html>
<?php
echo "Name:".$_GET["name"];
echo "Age:".$_GET["age"];
?>

为什么使用 $_GET?
在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。
HTTP GET 方法不适合大型的变量值;值是不能超过 100 个字符的。
一般用分页,详细信息显示等
POST则一般是提交数据专用

另外还有一种$_REQUEST 请求的意思,表示客户端的请求

PHP 的 $_REQUEST 变量包含了 $_GET, $_POST 以及 $_COOKIE 的内容。 
PHP 的 $_REQUEST 变量可用来取得通过 GET 和 POST 方法发送的表单数据的结果。

<html>
<body> <form action="" method="get">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form> </body>
</html>
<?php
echo "Name:".$_REQUEST["name"];
echo "Age:".$_REQUEST["age"];
?>

这种无论是get还是post提交方式都能获取,但尽量少用。因为有时候你得确认对方是什么方式提交的,还是分清楚比较好

下面说说 PHP Session 变量
当运行一个应用程序时,你会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。 Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

在用session 中之前,首先必须启动会话,这跟其他语言不同

<?php session_start(); ?>
<html>
<body>
</body>
</html>

session_start() 函数必须位于 100db36a723c770d327fc0aef2ce13b1 标签之前

index.php页面

<?php session_start(); ?> 

 
Name:
test.php

test.php 页面

<?php
session_start();
echo $_SESSION[&#39;name&#39;];
?>

index页面存入的seesion值就能在test页面显示出来
无论是存入还是输出,每个页面都要session_start();一下
$_SESSION['name']; 同样可以单双引号或不加,貌似php里都是这样,以后不再重复了哈


如果希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

<?php session_start(); ?>


Name:
test.php

然后在到test.php 就无法输出了

<?php
session_start();
if(isset( $_SESSION[&#39;name&#39;]))
echo $_SESSION[&#39;name&#39;];
else
echo "null";
?>

isset函数是检查某个值是否被设置(赋值),就是判断一个值是否为空

下面说
PHP Cookies

什么是 Cookie? cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

如何创建 cookie? setcookie() 函数用于设置 cookie。 
setcookie() 函数必须位于 100db36a723c770d327fc0aef2ce13b1 标签之前。

<?php 
setcookie("user", "Hello world", time()+3600);
?>

我们将创建名为 "user" 的 cookie,把为它赋值 "Hello world"。规定了此 cookie 在一小时后过期:

cookie一般保存在电脑哪里?
以IE浏览器来说,保存在
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files

Temporary Internet Files文件夹里
你会发现以你php项目为名的txt文件,打开它
就可以看到内容啦,不过有些内容是加密的,但前半段
user
Hello+world
localhost/MyPHP/ 还是能看到的

获取cookie值

<html> 
<body> <?php if (isset($_COOKIE["user"])) echo "Welcome " . $_COOKIE["user"] . "!<br />"; 
else echo "Welcome New!<br />"; 
?> 
</body> 
</html>

$_COOKIE是获取cookie值的


纵观其他语言,获取get,post,cookie都是用对象的,php显然简单的多,虽然是面向过程形式的



下面说php对文件的处理

首先在项目根目录创建一个文件 1.txt 内容hello world

打开文件 fopen() 函数用于在 PHP 中打开文件。此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪种模式来打开文件

<?php
$file=fopen("1.txt","r");
?>

$file这个变量是个资源变量,表示文件打开的状态
关于资源变量以后还会接触

文件可能通过下列模式来打开: 模式描述
r 只读。在文件的开头开始。 
r+ 读/写。在文件的开头开始。 
w 只写。打开并清空文件的内容;如果文件不存在,则创建新文件。 
w+ 读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。 
a 追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。 
a+ 读/追加。通过向文件末端写内容,来保持文件内容。 
x 只写。创建新文件。如果文件已存在,则返回 FALSE。 
x+ 读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

如果 fopen() 无法打开指定文件,则返回 0 (false)。 


打开文件还不够,接着打印

<?php
$file=fopen("1.txt","r");
$data="";
while(!feof($file)) 
{ 
$data.=fgets($file); 
} fclose($file); echo $data; 
?>

feof() 函数检测是否已达到文件的末端 (EOF)。在循环遍历未知长度的数据时,feof() 函数很有用。
fgets() 函数用于从文件中逐行读取文件。 
在调用该函数之后,文件指针会移动到下一行。
fclose 关闭文件

另外fread函数也可以读取文件

<?php
$file=fopen("1.txt","r");
$data="";
while(!feof($file)) 
{ 
$data.=fread($file,4096); 
} fclose($file); echo $data; 
?>


fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。 

fread与fgets的区别 
fread :以字节位计算长度,按照指定的长度和次数读取数据,遇到结尾或完成指定长度读取后停止. 
fgets :整行读取,遇到回车换行或结尾停止.在文本方式时使用. 


其实还有文件写入,文件上传下载这些
暂时先简要介绍在这里,以后我接触的时候再说

以上就是php学习正式起航(5)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP与Python:了解差异PHP与Python:了解差异Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

php:死亡还是简单地适应?php:死亡还是简单地适应?Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不断适应和进化。1)PHP从1994年起经历多次版本迭代,适应新技术趋势。2)目前广泛应用于电子商务、内容管理系统等领域。3)PHP8引入JIT编译器等功能,提升性能和现代化。4)使用OPcache和遵循PSR-12标准可优化性能和代码质量。

PHP的未来:改编和创新PHP的未来:改编和创新Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

您什么时候使用特质与PHP中的抽象类或接口?您什么时候使用特质与PHP中的抽象类或接口?Apr 10, 2025 am 09:39 AM

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

什么是依赖性注入容器(DIC),为什么在PHP中使用一个?什么是依赖性注入容器(DIC),为什么在PHP中使用一个?Apr 10, 2025 am 09:38 AM

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

与常规PHP阵列相比,解释SPL SplfixedArray及其性能特征。与常规PHP阵列相比,解释SPL SplfixedArray及其性能特征。Apr 10, 2025 am 09:37 AM

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP如何安全地上载文件?PHP如何安全地上载文件?Apr 10, 2025 am 09:37 AM

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

什么是无效的合并操作员(??)和无效分配运算符(?? =)?什么是无效的合并操作员(??)和无效分配运算符(?? =)?Apr 10, 2025 am 09:33 AM

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。