听说php是最好的语言?

php你为何这么吊

$

变量就是$加字母
所以在一个php里会看到很多$
有种jquery即视感
一个php文件的格式如下

<?php
    phpinfo()
?>

“.”

“.”可以表示字符串的相加

$a="m";

那么

$a."n" =>"mn"

function(){}

作为一门脚本语言,这方面php和js很像,直接声明

function myfunc(){
  dothings();
}

但有一点不同的是,php的一个全局变量要被子作用域里的函数访问时,要加

global $x;

比较奇特的是,php里只要是不在函数里定义的变量,都是全局的。
所有的全局变量被保存在一个数组中$GLOBALS[index]

用static的话,执行该函数时,里面的变量不会被重新赋值,延用上一次的值,就不需要递归传值了

static $m=0;
$m++;

echo

echo是php里输出东西,用来调试的一个东西
echo后面加变量或直接加字符串都行
尤其在今天的nginx里,
不知道怎么用log_format来格式化我要输出的变量,
直接echo
然后这个变量的值就被扔到response里面了,
也是一个看log偏方

$m=0;
$cars=array("a","b");
echo "m=$m";
echo "car is {$cars[0]}";

读写文件

读取/创建

$myfile = fopen("newfile.txt", "w");

如果这个文件不存在,那么就会创建这样一个文件

写入

$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);

2次写入不会覆盖,加\n就会把指针指到下一行
但如果这个文件之前有东西,那么这个文件之前的内容会被重写。

读入

fread函数读取打开的文件,第一个参数是文件名,第二个参数规定读多少,如下会全部读进来

fread($myfile,filesize("webdictionary.txt"));

fgets()会从文件读取单行,调用fgets函数后,文件指针会移动到下一行。

$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);

feof()会检查是否已经到达文件的最后

while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}

fgetc函数读取单字符

echo fgetc($myfile);

删除文件

unlink函数
如果成功删除就返回true
如果失败就返回false

if (file_exists($myfile)) {
  $result=unlink ($myfile);
  echo $result;
}   

时间戳

time()

随机数

rand(min,max);

转换为string

$mystr=(string)$mystr;

和js的基情

今天在做php发邮件的时候(是的,这个还没做完),老大说可以用escape来做,一查发现卧槽这是js的方法啊,一查卧槽php和js还可以交互的,同是脚本,不过网上的例子都很丑

<script type="text/javascript">
  function myfunc(){
    alert("i'm js");
  }
</script>

<?php echo "<script type="text/javascript>myfunc()</script>"?>

听老朱一说才恍然大悟,这其实不能算正经交互,“这个原理是服务器解析php代码渲染成html代码”,“等js跑的时候php已经结束工作了”,“已经到网页交给浏览器了”,“这就跟用eval()运行js代码一样丑陋”,一波吐槽以后,搞明白了,果然语言之间交互还是不那么容易的