现在是我在学习Markdown时做的笔记。学完这些Markdown的基本使用已经不成问题。

1. 标题设置(让字体变大,和word的标题意思一样)
在Markdown当中设置标题,有两种方式:
第一种:通过在文字下方添加“=”和“-”,他们分别表示一级标题和二级标题。
第二种:在文字开头加上 “#”,通过“#”数量表示几级标题。(一共只有1~6级标题,1级标题字体最大)

2. 块注释(blockquote)
通过在文字开头添加“>”表示块注释。(当>和文字之间添加五个blank时,块注释的文字会有变化。)

3. 斜体
将需要设置为斜体的文字两端使用1个“*”或者“_”夹起来

4. 粗体
将需要设置为斜体的文字两端使用2个“*”或者“_”夹起来

5. 无序列表
在文字开头添加(*, +, and -)实现无序列表。但是要注意在(*, +, and -)和文字之间需要添加空格。(建议:一个文档中只是用一种无序列表的表示方式)

6. 有序列表
使用数字后面跟上句号。(还要有空格)

7. 链接(Links)
Markdown中有两种方式,实现链接,分别为内联方式和引用方式。

内联方式:This is an [example link](http://example.com/).
引用方式:
I get 10 times more traffic from [Google][1] than from [Yahoo][2] or [MSN][3].  

[1]: http://google.com/        "Google" 
[2]: http://search.yahoo.com/  "Yahoo Search" 
[3]: http://search.msn.com/    "MSN Search"

 

8. 图片(Images)
图片的处理方式和链接的处理方式,非常的类似。
内联方式:![alt text](/path/to/img.jpg "Title")
引用方式:

![alt text][id]

[id]: /path/to/img.jpg "Title"

9. 代码(HTML中所谓的Code)
实现方式有两种:
第一种:简单文字出现一个代码框。使用`<blockquote>`。(`不是单引号而是左上角的ESC下面~中的`)
第二种:大片文字需要实现代码框。使用Tab和四个空格。

10. 脚注(footnote)
实现方式如下:
hello[^hello]

[^hello]: hi

11. 下划线
在空白行下方添加三条“-”横线。(前面讲过在文字下方添加“-”,实现的2级标题)

 

 

 

References:

以上内容根据官方文档基本文档进行整理。http://daringfireball.net/projects/markdown/basics

Markdown官方网站:http://daringfireball.net/projects/markdown/

推荐一款在线的Markdown编辑器:https://stackedit.io/

session_id()

session_id() 存取目前 session 代号。

语法: string session_id(string [id]);

本函数可取得或者重新配置目前存放 Session 的代号。若无参数 id 则表示只有取得目前 Session 的代号,加上参数则表示将 Session 代号设成新指定的 id。输入及返回均为字符串。

输出 session_id()

 

<?php
	session_start(); 
	echo session_id();
	// 输出 dqr58dnuqj2gufvg4o3tmjb9v4
?>

设置 session_id()

<?php
	session_id("NowaMagic");
	session_start(); 
	
	echo session_id();
	// 输出 NowaMagic
?>


Read More →

Mozilla 官方文档建议

Mozilla developer documentation 建议使用表单设置属性 tautocomplete=”off” 来阻止浏览器从cache获取数据填充登录表单

<input type="text" name="foo" autocomplete="off" />
但是这种方案不兼容某些Chrome、Firefox。

兼容所有浏览器

最终决定使用使用隐藏input来接受浏览器自动填充,这样不会影响用户体验,也可以兼容所有浏览器。

 

<input style="display:none"><!-- for disable autocomplete on chrome -->
<input type="text" id="username"  name="username"  autocomplete="off">

window.onload = function(){
var ifr1 = document.createElement(‘iframe’);
ifr1.id = ‘ifr1’;
ifr1.name = ‘ifr1’;

// 注意,动态的创建的iframe中,iframe中的内容必须等到iframe加载完之后才能添加,所以需要表明iframe加载完成的函数,如下两个函数
// ifr1.onload    谷歌和火狐认识 ,
// ifr1.onreadystatechange    IE认识,但是IE会执行两次,分别是ifr1.readyState == ‘interactive’和ifr1.readyState == ‘complete’,所以要做一下判断.

if(window.navigator.userAgent.indexOf(‘IE’) == -1){           //非IE的浏览器
ifr1.onload = setIframe;
}else{
ifr1.onreadystatechange = function(){                    //IE浏览器
if(ifr1.readyState == ‘complete’){                       //判断状态
setIframe();
}
}
}

function setIframe(){
//  方法一:
//    var ifrDoc = window.frames[‘ifr1’].document;
//    var ifrBody = window.frames[‘ifr1’].document.body;

//  方法二:
var ifrDoc = ifr1.contentWindow.document;
var ifrBody = ifr1.contentWindow.document.body;

ifrBody.style.cssText = ‘border:1px splid #CCC; cursor:text;background:red; ‘;
var ifrDiv1 = ifrDoc.createElement(‘div’);        //注意是要在框架的document中创建div,而不是该页面的document中
ifrDiv1.innerHTML = ‘wocooo’;
ifrBody.appendChild(ifrDiv1);
}

document.body.appendChild(ifr1);        //放在最后
}

(function($){
$(document).ready(function(){
$(“#collectSuccessShow”).click(function(){
$(this).html(“Bitte warten…”).load(location.search + “&type=collectArticle&uid=” + $(“#uid”).val());
});
});
})(jQuery)