PHP初学

今天有个同事离职,很早以前他用php写的东西没人维护了。只能自己硬着头皮上了,万一有问题需要修修补补。

这里做点记录,方便需要看的时候回忆,反正都是基础的东西。

1.搭建环境

下载的xampp,没装mysql,本地原来有。想下个eclipse for php,结果说我没安装jdk1.8,但是我明明电脑上有,那么就放弃吧,notepad看看算了。

2.启动项目

将源码放入xampp的hotdoc文件夹,修改它的2个启动参数端口,浏览器输入能访问了。

php代码是在服务端执行完后,生成静态html返回给前端的。

3.开始看代码学习php

3.1

关于session,默认为关闭

php1.php
<?php
#include './common.inc.php'; 
session_start();

$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();

echo ($_SESSION['time']);
?> 

php2.php
<?php
#include './common.inc.php'; 
session_start();


echo ($_SESSION['time']);
?> 

用来在内存中存储一些全局变量。如1中只要执行过,2中就有数据。

 

3.2

if(isset($_GET['returnUrl'])){}

_GET _POST _REQUEST用来获取上个页面的对应方法传来的参数。

 

3.3 

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING;    // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting;   // 输出 "greeting"
?>

定义常量,常量是全局的。

<?php
function myTest()
{
    static $x=0;
    echo $x;
    $x++;
    echo PHP_EOL;    // 换行符
}
 
myTest();
myTest();
myTest();
?>

static修饰的变量类似于java

<?php
$x=5;
$y=10;
 
function myTest()
{
    global $x,$y;
    $y=$x+$y;
}
 
myTest();
echo $y; // 输出 15
?>

global修饰的,在函数外可以访问

<?php 
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>

获取一些系统变量,全局的,类似echo $PATH,具体定义见:https://www.runoob.com/php/php-superglobals.html

 

3.4

header() 函数向客户端发送原始的 HTTP 报头。

3.5

if(NGARI_DEBUG) {
	error_reporting(E_ALL);
	$mtime = explode(' ', microtime());
	$debug_starttime = $mtime[1] + $mtime[0];
} else {
	error_reporting(0);
}

设置报告级别,错误日志可以打印

3.6

if(function_exists('set_magic_quotes_runtime')) @set_magic_quotes_runtime(0);

function_exists,意思是检查该函数是否存在,通常可能是php本身版本提供的一些函数。后面的加@是因为可以抑制错误信息输出?据说的

 

3.7


foreach(array('_POST', '_GET') as $__R) {
	if($$__R) { 
		foreach($$__R as $__k => $__v) {
			if(substr($__k, 0, 1) == '_') if($__R == '_POST') { unset($_POST[$__k]); } else { unset($_GET[$__k]); }
			if(isset($$__k) && $$__k == $__v) unset($$__k);
		}
	}
}
?>

 

这里的=>据说是赋予__v的同时将键值赋予k。。。

 

3.8

dirname(__FILE__)

获取当前文件所在路径

require NGARI_ROOT.'/php/config.inc.php';

与include类似,区别在于后者每次都去读取一次内容

3.9

curl相关的函数用法,跟linux上的差不多意思。远程获取东西

<?php 
 $url        = 'http://demo.zjmainstay.cn';
    $ch  = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, true);        //返回头信息
    curl_setopt($ch, CURLOPT_NOBODY, true);        //不返回内容
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //返回数据不直接输出
    $content = curl_exec($ch);                    //执行并存储结果
    curl_close($ch);
    echo $content;
?>
function Get_xxxx($url,$X_Access_Token)
    {
		if($url){
		$ch = curl_init();  
        //curl_setopt($ch, CURLOPT_POST, 1); 
        curl_setopt($ch, CURLOPT_URL,$url); 
		$headers = array();
        $headers[] = 'Content-Type: application/json; charset=utf-8';
        if($X_Access_Token) $headers[] = 'xxxx: '.$xxxx;
		if($_SESSION['ClientId']) $headers[] = 'xxxx: '.$_SESSION['xxxx'];
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_TIMEOUT,15);   //15秒超时  
		$result1 = curl_exec($ch); 
        $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 
        curl_close($ch); //关闭curl链接
		}
		if($httpCode==403) $result1='{"code": 403,"body": [],"msg":"xxxx"}';
        if($httpCode!=403&&$httpCode!=200) $result1='{"code": 509,"body": [],"msg":"xxxx"}';
        return json_decode($result1,true);
	}

之前的代码http请求的一种方式。
 

function xmlHttp(dotype,postdata,callback){		        
		var ajaxurl=xxxx;
		 
		$.ajax({ 
         type: "POST", //访问WebService使用Post方式请求 
         contentType: "application/json", 
         url: ajaxurl, //调用WebService的地址和方法名称组合 ---- WsURL/方法名 
         data: postdata, //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到 
         dataType: 'json', //WebService 会返回Json类型
         success:callback,
		 error:calllost
    });
}

另外一种用ajax

3.10

关于.htaccess文件

基本上是apache提供的一个重定向功能的文件,需要配置打开,可见https://blog.csdn.net/cmzhuang/article/details/53537591

4.业务相关主要代码

每个页面的公共部分:

定义在common.inc.php中,包括
require NGARI_ROOT.'/php/config.inc.php';
require NGARI_ROOT.'/php/global.func.php';

待补充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值