PHP学习

一、环境

windows下安装wampserver 3.0.6

1、更改www目录

1.1 修改 httpd.conf(实现更改默认网站路径,即将Http://localhost定向到自己的默认目录:E:/www/)

1.2 修改 httpd-vhosts.conf 很多教程上都没说这一步,然后我改了不成功,不知道这是不是3.0.6的新特性?

13 修改wampmanager.ini和wampmanager.tpl(改菜单中的“www 目录”指向)
 

二、语法

1、变量以 $ 符号开始,后面跟着变量的名称

 

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

1.1 变量名是区分大小写的($y 和 $Y 是两个不同的变量)。

 

1.2 PHP 没有声明变量的命令。

1.3 在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

 

<?php 
$x=5; // 全局变量 

function myTest() 
{ 
    $y=10; // 局部变量 
    echo "<p>测试函数内变量:<p>"; 
    echo "变量 x 为: $x"; 
    echo "<br>"; 
    echo "变量 y 为: $y"; 
}  

myTest(); 

echo "<p>测试函数外变量:<p>"; 
echo "变量 x 为: $x"; 
echo "<br>"; 
echo "变量 y 为: $y"; 
?>

结果:

 

 

测试函数内变量:

变量 x 为:
变量 y 为: 10

测试函数外变量:

变量 x 为: 5
变量 y 为: 

 

1.4 在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字

 

<?php
$x=5;
$y=10;

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>

 

1.5 PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

上面的实例可以写成这样:

 

2、函数

1.1 用户定义的函数声明以关单 "function" 开头:
语法

function functionName() {
  被执行的代码;
}


函数名能够以字母或下划线开头(而非数字)。
函数名对大小写不敏感。

1.2 默认参数值
下面的例子展示了如何使用默认参数。如果我们调用没有参数的函数,它的参数会取默认值:
实例

 

<?php
function setHeight($minheight=50) {
  echo "The height is : $minheight <br>";
}

setHeight(); // 将使用默认值 50
?>


3、超全局变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
实例

 

<?php
$x = 75;
$y = 25;
 
function addition() {
  $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
 
addition();
echo $z;
?>

 

三、安全性

1、如果避免 $_SERVER["PHP_SELF"] 被利用?

$_SERVER["PHP_SELF"] 是一种超全局变量,它返回当前执行脚本的文件名。

因此,$_SERVER["PHP_SELF"] 将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就能够在表单页面获得错误提示信息。

通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"] 被利用。

表单代码是这样的:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

htmlspecialchars() 函数把特殊字符转换为 HTML 实体。现在,如果用户试图利用 PHP_SELF 变量,会导致如下输出:

<form method="post" action="test_form.php/&quot;&gt;&lt;script&gt;alert('hacked')&lt;/script&gt;">

无法利用,没有危害!

 

四、其他

1、PHP json_encode中文乱码解决方法

PHP json_encode中文乱码解决方法

2、URL映射

(1)现在服务器的httpd.conf文件中开启重写.htaccess的权限,将下列代码添加到httpd.conf文件中

<Directory ".htaccess文件所在绝对路径">

  AllowOverride All

</Directory>

(2)关于.htaccess文件的存放位置:假如你之前的访问路径为:域名/car_project/index.php

  明显,这个路径访问的是car_project文件夹中的index.php文件,所以你要是想重写该路径,你就应该将.htaccess文件放到car_project文件夹中。

建立.htaccess 文件方法:

如 果是在windows平台下,刚开始还真不知道怎么建立”.htaccess”文件,因为这个文件实际上没有文件名,仅仅只有扩展名,通过普通方式是无法 建立这个文件的,先建立一个htaccess.txt的文本文件(当然,这个文本文件的名字你可以随便取),然 后进入cmd命令 窗口,通过cd切换当刚建立htaccess.txt文件的文件夹,然后输入命令:rename htaccess.txt .htaccess ,然后点击键盘Enter键即可。

(3)之后再将.htaccess文件将里面的重写引擎开启,在. htaccess文件中加入下列代码

<IfModule mod_rewrite.c>

RewriteEngine on

</IfModule>

(4)之后我们需要在IfModule标签中设定“重定向匹配需要应用的URL基本地址”,指令为RewriteBase,例子如下:

RewriteBase /demo/

而我们现在正在使用的地址是:http://localhost/demo/

(5)在IfModule标签里写入RewriteRule指令后,就可以对url进行重写了,比如可以在标签中加入下列代码:

RewriteRule somepage.php otherpage.php

这代表任何人访问somepage.php页面,实际显示的是otherpage.php页面

同理,我们还可以使用正则表达式来对输入URL参数的方式进行重写,比如:

RewriteRule ([a-zA-Z]{1,})/([a-zA-Z]{1,}).do$ $1/index.php?action=$2

([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个,如此类推!!

(6)如此,现在httpd.conf文件和.htaccess文件中应该有如下实例代码:

httpd.conf文件中:

<Directory ".htaccess文件所在绝对路径">

  AllowOverride All

</Directory>

 

.htaccess文件中:
 

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteBase /demo/
RewriteRule ([a-zA-Z]{1,})/([a-zA-Z]{1,}).do$ $1/index.php?action=$2

</IfModule>

我在浏览器中输入url:

http://localhost:90/pi/home/firstPage.do

实际访问的是:

http://localhost:90/demo/home/index.php?action=firstPage

这样就访问了index.php中的firstPage的action。

3、服务器离线,2/3服务运行中

右击计算机->管理->服务和应用程序->服务

然后查找wamp开头的,我这次发现wampApache没有启动,看来是Apache的问题。

点击启动,发现弹出框报错“Windows不能在本地计算机启动Apache”,在运行中切换到你的apache的bin目录下,执行httpd.exe,看有什么提示:

根据提示,找到报错的文件,原来是我AllowOverride前面多了几个空格,删掉,重新运行wamp解决问题。

参考:Apache系列—Windows不能在本地计算机启动Apache

 

 

参考:

PHP 教程

PHP 教程

http://www.jb51.net/article/70614.htm

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值