前言:

我在2019年2月17日发布过一期视频,讲的就是0成本搭建个人博客,当时受限于多方面原因没有非常详实的内容,本手册意在更完整详实的带着萌新走一遍建站的流程。(本手册将不定时对一些时效性内容进行更新。)
本项目在码云的链接

建站准备工作

硬件物资:可稳定联网的手机/电脑(推荐电脑,操作更方便)
软件物资:

  • 1个域名
  • 存放并运行你的网站的服务器/虚拟服务器(俗称VPS)/虚拟主机。
  • 你希望搭建的网站的文件(比如你想用WordPress做自己的博客,那就去WordPress官网下载该程序的安装文件)

关于域名,我个人不推荐使用别人的"二级域名",我的建议是在freenom免费域名网站申请一个免费域名(百度有教程)。
关于服务器,本着”免费、简便“的原则,我在教程中先写使用虚拟主机建站的方法。

PHP echo&print

区别:

  • echo可输出多个字符串(你当然可以只输出一个啊),没有返回值
  • print 只能输出一个字符串,但是具有固定为1的返回值。
PS:echo输出的速度比print快,两者输出的字符串都可以包含标签。

使用格式均为:
echo "相见亦无事,不来常思君。"
`print "相思相见知何日?此时此夜难为情!——李白《三五七言 / 秋风词》"

PS:你可以加上括号,但是他们两个都可以不加。
实例:
<?php
$txt1="学习 PHP";
$cars=array("Volvo","BMW","Toyota");
echo "未知狐开着 {$cars[2]}","$txt1";
echo "<br> Look at you day by day.";
?>

运行后:
未知狐开着 Toyota学习 PHP
Look at you day by day.

博客正在备案

你会发现,博客现在正在用IP :120.55.81.34直接访问,当然不是我不想用域名......
是因为我把博客搬到了阿里云在广州的服务器(服务器线路有点问题,国内好多地方都打不开... (╯‵□′)╯︵┴─┴ ),现在正在阿里云备案,备案信息早提交了,但是还在审核,等服务器备案好了就可以访问:www.xfox.fun或者直接访问xfox.fun啦!

【备案】关于阿里云备案审核延期的通知

【阿里云】【备案】【审核延期】

尊敬的阿里云用户,您好!

为加强新型冠状病毒感染的肺炎疫情防控工作,有效减少人员聚集,阻断疫情传播,响应国家号召,在疫情防控期间,我们会减少审核人员聚集性办公,防止交叉感染,您的备案申请会延长审核,各省、直辖市通信管理局预计审核周期为20个工作日,具体审核状态请您关注备案进度。

同时,我们会密切关注疫情防控要求并尽快恢复1个工作日的初审时效,为您带来的不便我们深感歉意!感谢您对我们工作的理解和支持。

钉钉直播为什么卡

一. 用户数量过多,数据流量超载以及黑客攻击。

具体参见下图!
智学网遭黑客攻击,官方紧急关闭直播入口-官微信息(目前已恢复正常)
此事也暴露出某些商业性平台的一些问题:参见知乎网友痛批智学网

二. 用户设备问题(此项占主要)

如何调整好本地设备确保流畅观看直播?

  1. 原则上,观看效果:电脑&智能电视>平板>手机
    关键点:屏幕大小适中、分辨率高。
    PS:如果有条件,可以使用移动设备打开视频选择投屏到智能电视上哦!
    (非智能电视不要急,大多数家庭配有智能网络电视盒,此硬件大多支持投屏<包括但不限于华为、小米、中兴、苹果、移动魔百盒)
  2. 使用网络&视频性能更好的设备
    众所周知,高通骁龙处理器GPU能力:800系列(定位高端)>600系列(定位中端)>400系列(定位低端)
    同系列处理器GPU能力可参考:骁龙450>骁龙439
    此处仅作粗略比较,具体性能可参阅《移动设备CPU性能天梯图》
  3. 本地网络速度很重要
    目前,已知家庭宽带主要三大运营商中综合网络性能(网络带宽标实差&网络延迟):电信>联通>移动
    Tips:部分小运营商如:鹏博士长城宽带等 带宽均租借上述三大运营商(实际都租借移动),由于追求经济效益过量吸入用户,实际平均带宽极低,网络延迟非常高!极不推荐!

如果本地网络卡顿......

  1. 如果有条件,你真的可以试试用流量观看。

    请不要说流量很贵,李晓君老师曾经在后黑板上写过哈佛大学前校长德里克博克的名言:“如果你认为教育的成本太高,试试看无知的代价!”-"If you think education is expensive,try ignorance!"
    PS:如果你被刘金金老师教过,你或许知道:“为什么心理咨询师一定要收费服务?”那么你就明白我的用意了。
  2. 打开路由器管理界面(不知道什么意思请自行百度),设置DNS为:

TPV4:
首选DNS:223.5.5.5
备选DNS:223.6.6.6
IPV6:
首要:2400:3200 :: 1
备选:2400:3200:baba :: 1

以上DNS为阿里云公共DNS,普通用户设置IPV4即可(国内IPV6应用实际尚未大规模普及),你也可以选择使用腾讯云DNSPod。
PS:DNS是域名解析必不可少的服务,好的DNS可以大幅加快解析速度,增快网页访问速度,大厂如:BAT三巨头的DNS在国内的解析速度自然要比早就被污染的谷歌DNS好得多。(部分国内落后垃圾厂家的路由器默认使用Google DNS,极大的拖慢了网页访问速度。)
  1. 我强烈推荐 大家试试更新到Dingtalk的最新版本、更新系统、清除系统&APP缓存、重启设备再试试。
    国内安卓系统(Android)用户极多,但大多数是第三方手机厂商“魔改过”的系统(such as :华为:EMUI、小米:MIUI、OPPO color OS,魅族:FlymeOS、联想:ZUI、努比亚:Nubia UI、)极其臃肿,由于系统底层被疯狂修改,部分设备播放视频可能存在显示渲染异常导致花屏、卡顿。如果有此问题建议向手机厂商反映情况,因为除了更换设备,你没有其他办法。

(别不服气,有能力自行DIY解决系统BUG的人是不需要看我的博文的。)

钉钉服务器几乎不可能被攻破,用户设备才是卡顿元凶

钉钉(DingTalk)是阿里巴巴集团专为中国企业打造的免费沟通和协同的多端平台。
阿里巴巴旗下拥有云计算服务:阿里云,用户覆盖全球,在中国IDC排名稳占前五,百度、阿里、腾讯统称中国BAT三巨头,在中国全国境内拥有大量服务器机房,作为阿里巴巴的“行业独角兽”Dingtalk的服务器资源是任何在线教育平台都无法比拟的。至于黑客攻击,你有见过支付宝服务器被黑客入侵的新闻吗?
DingTalk
(阿里云:我是IDC卖云服务的,你要和我比互联网硬件?)

- 阅读剩余部分 -

变量的作用域是脚本中变量可被引用/使用的部分

PHP 有四种不同的变量作用域:

  • local //局部 (在函数内定义)
  • global //全局 (在函数外定义)
  • static //静态
  • parameter //参数

内容总览

1、定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾。
2、函数内定义的变量就是局部变量,它的作用域为函数定义范围内。
3、函数之间存在作用域互不影响。
4、函数内访问全局变量需要 global 关键字或者使用 $GLOBALS[index] 数组
在 php 中函数是有独立的作用域,所以局部变量会覆盖全局变量,即使局部变量中没有全局变量相同的变量,也会被覆盖。如下:

局部变量和全局变量

<?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";
?>

以上实例中 myTest() 函数定义了 $x 和 $y 变量。 $x 变量在函数外声明,所以它是全局变量 , $y变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为$x变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。

然后我们在myTest()函数外输出两个变量的值,函数将会输出全局变量 $x 的值,但是不能输出 $y 的值,因为 $y 变量在函数中定义,属于局部变量;$x在函数外定义,属于全局变量。

- 阅读剩余部分 -

这个想法很早就有了 甚至那时候“一言API”还不为世人所知,只是当时空有想法没有能力一直搁置,今天想起来了决定要做出来点东西。

随机文字API

这里暂时只放出来我搜集到其他大佬的。
  1. 方案1(简介代码

    <?php
    $arr=file('1.txt');
    $n=rand(0,count($arr));
    echo $arr[$n];
    ?>

  2. 方案2(其实和1差不多,不过这个路径可以换成其他目录,其他变量基本相同)
    <?php
    $f='1.txt'; //文件名
    $a=file($f); //把文件的所有内容获取到数组里面
    $n=count($a); //获得总行数
    $rnd=rand(0,$n); //产生随机行号
    $rnd_line=$a[$rnd]; //获得随机行
    /echo "$rnd / $n : $rnd_line"; //显示结果(内容前加“行号/总行”)/
    echo "$rnd_line"; //直接输出取得文本行
    ?>