Giter VIP home page Giter VIP logo

blog's People

Watchers

 avatar  avatar

blog's Issues

web component

背景

文章

测试例子
<html>
    <head>
        <title>web component</title>
    </head>

    <body>
        <script>
            document.registerElement('button-hello', {
              prototype: Object.create(HTMLButtonElement.prototype, {
                createdCallback: {
                  value: function createdCallback() {
                    this.innerHTML = '<button>hello world</button>'
                    this.addEventListener('click', () => {
                      alert('hello world')
                    })
                  }
                }
              })
            })
        </script>

        <button-hello></button-hello>


    </body>
</html>

PHP学习

PHP学习 http://www.w3school.com.cn/php
百科 http://baike.baidu.com/link?url=I-CPUFEm_NCSRhyv0pBynEsMO10w_AOB6tsHWYTB296xJlTt3SZiuTyKjQ8IbOKDJvXLpXNPe42Sv8tHcE4MHs4QOOkE9d-TB07SzPniySK

1 变量的作用域

Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

global 关键词用于函数内访问全局变量。
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。

PHP static 关键词
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。

2 数据类型

PHP var_dump() 会返回变量的数据类型和值:

$x = 10.365;
var_dump($x); ===>>> float(10.365)

$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB" }

PHP NULL 值
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:

3 常用函数

PHP strlen() 函数
strlen() 函数返回字符串的长度,以字符计。

PHP strpos() 函数
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。

4 常量定义

设置 PHP 常量
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。

字符串串接

5 循环

PHP for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。

PHP foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
语法
foreach ($array as $value) {
code to be executed;
}
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
下面的例子演示的循环将输出给定数组($colors)的值

6 函数

在 PHP 创建用户定义函数
用户定义的函数声明以关单 "function" 开头:
注释:函数名能够以字母或下划线开头(而非数字)。
注释:函数名对大小写不敏感。
提示:函数名应该能够反映函数所执行的任务。

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

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

遍历索引数组
如需遍历并输出索引数组的所有值,您可以使用 for 循环,就像这样:
实例

<?php
$cars=array("Volvo","BMW","SAAB");
$arrlength=count($cars);

for($x=0;$x<$arrlength;$x++) {
  echo $cars[$x];
  echo "<br>";
}
?>

PHP 关联数组


关联数组是使用您分配给数组的指定键的数组。
有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
或者:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
随后可以在脚本中使用指定键:


遍历关联数组
如需遍历并输出关联数组的所有值,您可以使用 foreach 循环,就像这样:
实例

<?php
$age=array("Bill"=>"35","Steve"=>"37","Peter"=>"43");

foreach($age as $x=>$x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "<br>";
}
?>
7 数组的排序函数

PHP - 数组的排序函数
在本节中,我们将学习如下 PHP 数组排序函数:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序

8 超全局变量

PHP 全局变量 - 超全局变量
PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。

$GLOBALS — 引用全局作用域中可用的全部变量
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。href
$_REQUEST 用于收集 HTML 表单提交的数据。
$_POST 广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
$_GET 也可用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。

$_GET 是通过 URL 参数传递到当前脚本的变量数组。vs $_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。

什么是 htmlspecialchars() 函数?
htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}

表单必填 链接

页面链接

9 多维数组

对于二维数组,您需要两个索引来选取元素
对于三维数组,您需要三个索引来选取元素

$cars = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );
10 日期

date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:
d - 表示月里的某天(01-31)
m - 表示月(01-12)
Y - 表示年(四位数)
1 - 表示周里的某天

h - 带有首位零的 12 小时小时格式
i - 带有首位零的分钟
s - 带有首位零的秒(00 -59)
a - 小写的午前和午后(am 或 pm)

请注意 PHP date() 函数会返回服务器的当前日期/时间!

<?php
date_default_timezone_set("Asia/Shanghai");
echo "当前时间是 " . date("h:i:sa");
?>

mktime(hour,minute,second,month,day,year)

strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。

11 include php文件

PHP include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。

区别:include 和 require 语句是相同的,除了错误处理方面:
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
include 只生成警告(E_WARNING),并且脚本会继续

请在此时使用 require:当文件被应用程序请求时。
请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

11 文件
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>

fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。
fclose() 函数用于关闭打开的文件。
注释:用完文件后把它们全部关闭是一个良好的编程习惯。您并不想打开的文件占用您的服务器资源。
fclose() 需要待关闭文件的名称(或者存有文件名的变量):

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

feof() 函数检查是否已到达 "end-of-file" (EOF)。
feof() 对于遍历未知长度的数据很有用。

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// 输出单行直到 end-of-file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

fgetc() 函数用于从文件中读取单个字符。

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
12 文件上传

$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。

13 cookie

setcookie() 函数用于设置 cookie。
注释:setcookie() 函数必须位于 标签之前。

注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。

14 session

PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。

Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
unset() 函数用于释放指定的 session 变量:
您也可以通过 session_destroy() 函数彻底终结 session:

13 邮件

mail(to,subject,message,headers,parameters)

14 错误处理

简单的 "die()" 语句
自定义错误和错误触发器
错误报告

error_function(error_level,error_message,error_file,error_line,error_context)

15 错误处理

什么是 PHP 过滤器?
PHP 过滤器用于验证和过滤来自非安全来源的数据。
验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。
设计 PHP 的过滤器扩展的目的是使数据过滤更轻松快捷。

nodeJS模块

1 log4js
https://zhuanlan.zhihu.com/p/22110802
https://github.com/nomiddlename/log4js-node

var log4js = require('log4js');
var express = require('express');

log4js.configure({
 appenders: [{
   type: 'DateFile',
   filename: 'access.log',
   pattern: '-yyyy-MM-dd.log',
   alwaysIncludePattern: true,
   category: 'access'
 }]
});

var app = express();
app.use(log4js.connectLogger(log4js.getLogger('access'), { level: log4js.levels.INFO }));
app.get('/', function(req,res) {
  res.send('前端外刊评论');
});
app.listen(5000);

ES6-generater 解决callback hell

function getAuthor(cb){
  sleep(() => {
    cb('codefalling')
  })
}

function getBlog(cb, author){
  sleep(() => {
    if (author === 'codefalling') {
      cb('https://codefalling.com')
    }
  })
}
function sleep(cb){
  setTimeout(cb, 1000)
}


function* tasker(cb){
  const author = yield getAuthor(cb)
  console.log(`Author: ${author}`)
  const blog = yield getBlog(cb, author)
  console.log(`Blog: ${blog}`)
}

const runner = tasker(resume)
function resume(res){
     runner.next(res)
}
runner.next()

收集

RC 是Release Candidate 的缩写

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.