jason-mor / blog Goto Github PK
View Code? Open in Web Editor NEW分享,积累
分享,积累
用于快速定位网上问题。
调试查看代码
1 使用了angular1.2.28(支持IE8的最高版本)
2 采用二维码进行登录(猜想:每个一定时间去检查是否有正确登录权限)
问题:
1 前端界面如何通过angular搞出来的
相关资料
http://www.tanhao.me/talk/1466.html/
http://ju.outofmemory.cn/entry/241207
RC 是Release Candidate 的缩写
PHP学习 http://www.w3school.com.cn/php
百科 http://baike.baidu.com/link?url=I-CPUFEm_NCSRhyv0pBynEsMO10w_AOB6tsHWYTB296xJlTt3SZiuTyKjQ8IbOKDJvXLpXNPe42Sv8tHcE4MHs4QOOkE9d-TB07SzPniySK
Local 和 Global 作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
global 关键词用于函数内访问全局变量。
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
PHP static 关键词
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
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,将变量清空:
PHP strlen() 函数
strlen() 函数返回字符串的长度,以字符计。
PHP strpos() 函数
strpos() 函数用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
设置 PHP 常量
如需设置常量,请使用 define() 函数 - 它使用三个参数:
首个参数定义常量的名称
第二个参数定义常量的值
可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
字符串串接
PHP for 循环
如果您已经提前确定脚本运行的次数,可以使用 for 循环。
PHP foreach 循环
foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。
语法
foreach ($array as $value) {
code to be executed;
}
每进行一次循环迭代,当前数组元素的值就会被赋值给 $value 变量,并且数组指针会逐一地移动,直到到达最后一个数组元素。
下面的例子演示的循环将输出给定数组($colors)的值
在 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>";
}
?>
PHP - 数组的排序函数
在本节中,我们将学习如下 PHP 数组排序函数:
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序
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;
}
表单必填 链接
对于二维数组,您需要两个索引来选取元素
对于三维数组,您需要三个索引来选取元素
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
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 时间。
PHP include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。
区别:include 和 require 语句是相同的,除了错误处理方面:
require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
include 只生成警告(E_WARNING),并且脚本会继续
请在此时使用 require:当文件被应用程序请求时。
请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。
<?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);
?>
$_FILES["file"]["name"] - 被上传文件的名称
$_FILES["file"]["type"] - 被上传文件的类型
$_FILES["file"]["size"] - 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
setcookie() 函数用于设置 cookie。
注释:setcookie() 函数必须位于 标签之前。
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
unset() 函数用于释放指定的 session 变量:
您也可以通过 session_destroy() 函数彻底终结 session:
mail(to,subject,message,headers,parameters)
简单的 "die()" 语句
自定义错误和错误触发器
错误报告
error_function(error_level,error_message,error_file,error_line,error_context)
什么是 PHP 过滤器?
PHP 过滤器用于验证和过滤来自非安全来源的数据。
验证和过滤用户输入或自定义数据是任何 Web 应用程序的重要组成部分。
设计 PHP 的过滤器扩展的目的是使数据过滤更轻松快捷。
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);
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()
记录RN学习的步骤
<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>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.