欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

容易被忽略的php的小知识

程序员文章站 2024-01-30 16:35:16
...

来源:《PHP和Mysql.Web开发(第四版)》

第一章 PHP快速入门

知识点1

执行操作符,反向单引号。它可以当做服务器端的命令行来执行。

$out = `ping www.baidu.com`;
echo '<pre>'.$out.'</pre>';

输出结果
容易被忽略的php的小知识

知识点2

$a = 100;

$b = print $a - 1; //输出99

var_dump($b);// 返回值 1

第二章 数据的存储与检索

知识点2

readfile('./test1.txt'); //直接把文件内容输送的浏览器,返回字节总数

echo PHP_EOL;

$arr = file('./test1.txt'); // 用一个数组接受内容

$fp = fopen('./test1.txt', 'a+'); //可读可写的追加方式

// $content = fgets($fp); //读取一行

// fpassthru($fp); //输出文件指针处的所有剩余数据

// link('./test1.txt', './testa.txt');//相当于linux的硬链接

fwrite($fp, "cccccccccc"); //写入内容

// $content = file_get_contents("./test1.txt", true); //获得文件内容,string

// file_put_contents('./test1.txt', 'haha', FILE_APPEND); //追加文件内容

// $content = fread($fp, filesize("./test1.txt")); //读取文件的内容

// var_dump(file_exists("./test1.txt"));

// echo nl2br(fread($fp, filesize("./test1.txt"))); //将输出的/n转换成HTML换行符号

// var_dump($content);
// var_dump($arr);

第三章 使用数组

知识点3

//奇数数组
$arr = range(1,10,2); // start end step
//也可以对字符操作
$arr = range('a', 'z', 2);

知识点4

$arr = range(1, 10);
//遍历数组
while ($element = each($arr)) {
    echo $element['key'] . '=>' . $element['value'] . '<br/>';
}

while (list($key, $value) = each($arr)) {
    echo $key . '=>' . $value . '<br/>';
}

知识点5

//把数组中的值赋给相同元素个数的变量
list($a, $b, $c, $d, $e) = array(1, 2, 3, 4, 5);

echo $a, $b, $c, $d, $e;

知识点6

//联合,如果索引相同的话,不会合并
$arr1 = array(0, 1, 2, 3);
$arr2 = array('a' => 1, 'b' => 2);
$arr = $arr1 + $arr2;
var_dump($arr);

知识点7

//遍历三维数组
$arr = array(array(

    array('name' => 'huangyuxin', "age" => 15),
    array('name' => 'zhangsan', 'age' => 11),
    array('name' => 'zhangsan', 'age' => 11),

));

for ($i = 0, $n = count($arr); $i < $n; $i++) {
    foreach ($arr[$i] as $k => $v) {
        $name = $v['name'];
        echo $name . '<br>';
    }

}

注意:大多数的实际问题在逻辑上使用三维数组或者更少维的数组结构就可以解决。

知识点8

//计算值出现的次数,值作为键,次数作为值
$fruits = array(
    "orange1", "orange1", "Orange3", "orange20",
);
$res = array_count_values($fruits);
var_dump($res);

结果:
array(3) { ["orange1"]=> int(2) ["Orange3"]=> int(1) ["orange20"]=> int(1) }

知识点9

<?php

$fruits = array(
    'a' => "orange1", 'b' => "orange1",
);
$res = extract($fruits);
var_dump($a, $b);

结果:
string(7) "orange1" string(7) "orange1"

知识点9

//查询字符串首次出现的位置
$str = 'abcdefG';

$res = stripos($str, 'g');

var_dump($res); //6 不区分大小写

$res = strpos($str, 'g');

var_dump($res); // false

$str = 'abcdefgaA';

//算指定字符串在目标字符串中最后一次出现的位置
$res = strrpos($str, 'a'); // 返回值为int 7
var_dump($res);

$res = strripos($str, 'a'); //8 不区分大小写
var_dump($res);
$str = 'abcd';
$res = substr($str, 1);
var_dump($res);

结果:
bcd
$a = 'huangyuxin';
$b = "HUANGYUXIN";
var_dump(strcmp($b, $a)); // -1比较区分大小写。
var_dump(strcasecmp($b, $a)); //不区分大小写
var_dump(strncmp($b, $a, 1)); //比较区分大小写。指定比较长度

$str = 'abcdefg';
$res = strstr($str, 'd', true);

var_dump($res); // abc 返回前部分
$res = strstr($str, 'd'); //返回此字符串和后面的字符串
var_dump($res); //defg
$res = stristr($str, "D"); //不区分大小写
var_dump($res);//defg

未完待续

相关标签: php 知识点