网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 网站开发教程 » [网站开发教程] -- 理解一些常见的概念 » 2015-07-17 00:04:05

admin
回复: 0

网站开发的过程中需要了解很多概念,这里一小部分


第一: 域名

域名并不是必须的东西,通过ip地址也可以直接访问网站。但是基本每个网站都自己的域名。

域名对人类是友好的,ip地址对计算机的是友好的。

biadu.com 是个域名, 360.com 是个域名 ,这里写的很清楚 http://baike.baidu.com/view/43.htm 

域名的作用就是方便人们的记忆,域名具有唯一性,也就是说全世界同一个域名只有一个,就像

身份证号码一样,没有两个是一样的。


第二:web服务器

网站的内容全部是来自web服务器的。web服务器负责传送这些内容给浏览器。

也就是说web服务器把网站的文件发给浏览器。 

这里没有说web服务器生成了文件。通常文件有两类

  1. 已经有的文件,比如一个图片,一个js文件 ... 这些文件是固定不变了,web服务器读取文件并传送给浏览器。

  2. 需要动态生成的文件。 通常web服务器自己是不直接参与的,需要很其他的程序配合生成最后的结果。 这样的网站就是动态网站。

具体可以看看下什么是动态网站。


第三:http协议

http详细的规定了,web服务器和代理(通常就是浏览器)传送文件的的具体过程,和细节。

比如大名鼎鼎的404, 200 , 301 当然这里代码很多。

404就是 web服务器告诉代理(浏览器)文件没有找到。

200就是说 web服务器正确的返回了代理(浏览器)需要的文件。

301表示 web服务器高速代理(浏览器)你请求的文件已经到另外一个地方去了。

具体的内容比较多


第四:浏览器

浏览器的作用就是对web服务器传送的文件进行解析。最后显示给用户。


第五:html

html就是一个网页的骨架,网页的内容。网页的结构。


第六:javascript

网页的动态效果,一般是通过javascript 完成的,比如点击出现个提示框, 点击图片会改变,文字大小会改变。

这里都是 javascript 来完成的,当然也不全是。

 

第七:css

css 就是把网站变得更漂亮的工具。


#2 网站开发教程 » [网站开发教程] -- 网站的运行原理 » 2015-07-16 23:40:19

admin
回复: 0

如果要深入的了解网站运行的原理,需要了解http协议,因为网站就是基于http的。

这里不打算讨论复杂的内容,简单的做下科普。


理解网站的运行原理

我们就拿 www.ippbs.net 作为一个示例。

从用户的角度看。

用户需要在浏览器中输入网站的网址就可以看到网站。

首先


第一个问题: 显示的页面从哪里来的?

答案可定是从远程的服务器来的,具体的说。 当输入 www.ipbbs.net 的是,需要做解析, 解析的

意思就是,把网址 www.ipbbs.net 变成一个 ip地址,因为网络中通信都是使用ip地址来通信的。

这就可以知道服务器的位置,并进行通信。


第二个问题: 远程服务器传回那些信息?

传回的信息有文本信息,图片,或者flash 等。 有很多种格式的文件。

核心是一些文本文件。比如查看文章的源代码就是传回来的东西。

这里需要注意,虽然输入了一个网址,传回啦的文件,可以是对个的。 一个图片是一个文件, 

一个js代码可以是一个文件, 一个css可以是一个文件。 


第三个问题: 浏览器是怎样呈现出来的?

浏览器获得这些文件后,就开始处理。最会呈现给用户。

#3 友情链接 » 本站欢迎交换友情链接 » 2015-04-20 22:54:34

admin
回复: 0

可以留言在下面留言 。 

或者 QQ 183200966

#4 随便了了(水区) » 站长工具里的百度权重是什么 » 2015-04-11 11:29:01

admin
回复: 0

首先看看百度官方是怎么说的(http://zhanzhang.baidu.com/wiki/36)

“ 百度从未提供过网站权重信息数据以及对外查询服务。第三方站长工具的数据并非百度官方数据,不代表真实的网站情况,百度对使用此类数据而造成的困扰不负任何责任。请网站管理员不要将这些“百度权重”数值当成真实数值来参考使用

简单的说,百度的意思就是 , 这个所谓的“百度权重”不是百度自己评定的。 是第三方评定的。

不过相当多的人还是比较看重这个东西的。那么就应该明白这个东西是怎么来的。

首先要明白关键词指数,就是说这个一个词每天被搜索多少次。

排名越靠前的被点击的概率越大。

百度权重就主要受两个元素的影响。关键词指数和网站的排名。

说的简单的指数反应了 百度能给这个网站带来多少流量。

#5 php技术区 » 打印程序中存在的变量可以用的变量 » 2015-03-25 15:27:54

admin
回复: 0

$ans = get_defined_vars();
var_dump(array_keys($ans));


#6 vim命令学习 » vim php 自动补齐 » 2015-03-24 12:01:09

admin
回复: 0

效果图

vim-php-ipbbs-net.jpg

实现这个效果需要两个步骤

第一: 制作一份php的函数文件

或者说是一个字典文件, 因为自动补全用的就是字典中的内容。

这里通过php程序自动获得

<?php

// 获得所有的函数, 这里有系统函数和内部的函数
$funs_all = get_defined_functions();
// 仅仅提取 系统的内部函数
$funs = $funs_all['internal'];

// 获得系统的常量
$constants = get_defined_constants();

// 把系统常量加入
foreach($constants as $k => $v) {
    $funs[] = $k ;
}

// 生产字典, 名字就是  php_functions.txt
file_put_contents('php_functions.txt', implode(PHP_EOL, $funs));

这样多的好处就是方便, 如果从php源代码中寻找需要,和当前使用的版本一致,这样才准确。

第二: 修改 .vimrc 文件

在 .vimrc 中加入
set dictionary+=~/php_functions.txt    #保存函数列表的那个文件
set complete-=k complete+=k
function! InsertTabWrapper()
    let col=col('.')-1
    if !col || getline('.')[col-1] !~ '\k'
        return "\<TAB>"
    else
        return "\<C-N>"
    endif
endfunction
inoremap <TAB> <C-R>=InsertTabWrapper()<CR>

第三使用方法: 

输入一个或者多个字符后按下tab, 就自动出现, 继续按tab就循环选择


参考:

http://home.51.com/oxff/diary/item/10052427.html

#7 linux学习交流 » shell 数组 » 2015-03-21 13:32:58

admin
回复: 0

数组的创建是使用小括号

比如

arr=(1 2 3)

arr=(`ls`)

取得数组的值

echo ${arr[0]}

获得数组的长度

echo ${#arr[*]}

打印整个数组

echo ${arr[*]}

示例


arr=`(ls /)`

for x in ${arr[*]}
do
    echo $x
done


#8 linux学习交流 » linux 自定义文件的输入和输出 » 2015-03-20 14:52:49

admin
回复: 0

linux 标注的输入和输出、错误是2是 0, 1 (linux 中的标准输入,输出,和错误

自己可以自定义一些。

首先要明白文件操作的三种方式

第一: 读取

第二: 追加

第三: 重写(先把文件清空,之后写入)

比如一个文件 

[root@qd ~]# cat a.txt
test
[root@qd ~]# cat < a.txt  # 读取操作
test
[root@qd ~]# echo "new test" > a.txt  #重写操作
[root@qd ~]# echo "other " >> a.txt   #追加操作
[root@qd ~]# cat a.txt
new test
other

如果要自定义一些使用命令exec 

做一个读的操作

[root@qd ~]# exec 3< a.txt
[root@qd ~]# cat <&3
new test
other

这里可以看到 没有使用文件名通过一个数 就读取了文件。

这里要注意 exec 3< 后面的文件是必须存在的。

做一个重写的操作

[root@qd ~]# exec 4>a.txt
[root@qd ~]# echo "test" >&4
[root@qd ~]# cat a.txt
test

做一个追加操作

[root@qd ~]# exec 5>>a.txt
[root@qd ~]# echo "test" >&5
[root@qd ~]# cat a.txt
test
test

这里可以看到 出现了两个test. 

#9 linux学习交流 » shell 中 使用文件做输入 » 2015-03-20 14:30:44

admin
回复: 0

使用从定向  <

#!/bin/bash

cat <<xxx> log.txt
log ...
xxx

运行后就多了一个 log.txt 文件

cat < log.txt

又会输出 log...


#10 linux学习交流 » linux tee » 2015-03-20 14:20:02

admin
回复: 0

tee 使用的内容是 前面命令的输出

比如

[root@qd ~]# cat a.txt |  out.txt
-bash: out.txt: command not found
[root@qd ~]# cat a.txt |  tee out.txt

第二个命令就没有错误 

比如要合并文件就可以用

 cat *.txt |  tee out.txt > /dev/null

这样合并的文件不会输出。

也可以生成多个副本

 cat *.txt |  tee out.txt out2.txt out3.txt > /dev/null


#11 linux学习交流 » linux 中的标准输入,输出,和错误 » 2015-03-20 13:54:54

admin
回复: 0

linux 中有三个特殊的文件描述符

0 -- 表示标准的输入

1 -- 表示标准的输出

2 -- 表示错误输出


命令

[root@qd ~]# echo "ccc" 0> a.txt
ccc
[root@qd ~]# echo "ccc" 1> a.txt
[root@qd ~]# echo "ccc" 2> a.txt
ccc

可以看到0, 2 又输出了 ccc. 1 没有,因为直接写入到文件中了。

什么时候2起作用比如

[root@qd ~]# not a com 2> err.txt
[root@qd ~]# cat err.txt
-bash: not: command not found

命令出错的时候,就用到了。

如果想记录命令执行的输出可以用 

xxx 2>> err.txt 1>>ok.txt

这样错了的就重写到 err.txt , 成功的就重写的到 ok.txt

不管执行的结果都可以同一个文件可以用

xxx &>> all.txt


#12 linux学习交流 » linux shell 算法运算加法 » 2015-03-20 13:37:46

admin
回复: 0

#!/bin/bash

x=1
y=2

let x=x+1
echo $x
let x+=1
echo $x

ans=$[$x+$y]
ans=$[ $x + $y ]
ans=$[x+y]
ans=$[x + y]
ans=$[x + 100]
ans=$(( x + y ))
ans=$((x+y))
ans=`expr 3 + 2 ` #加号两侧要有空格
ans=$(expr 3 + 2)
ans=`echo "$x + $y" | bc`
echo $ans

总结

使用 let, (()), [], bc

#13 linux学习交流 » linux产看进程的环境变量 » 2015-03-20 13:04:31

admin
回复: 0

cat /proc/`pgrep ssh | head -1`/environ | tr '\0' '\n'

比如这个命令就是产看ssh 进程的变量信息

因为环境变量都存在 文件 /proc/进程的id号/environ 中

因为ssh有多个,只取一个

#14 vim命令学习 » vim 多文件编辑 » 2015-03-19 16:01:35

admin
回复: 0

  1. edit text.txt  增加一个编辑一个文件 可以可以简写为 e


#15 vim命令学习 » vim 中的多行选择 » 2015-03-19 15:27:04

admin
回复: 0

使用 v, 或者  ctrl-v

v -- 表示 全部的行

ctrl -v 表示 一个矩形区域

#16 vim命令学习 » vim 快捷键 移动操作 » 2015-03-19 15:07:57

admin
回复: 0

  1. 基本的移动 h,j,k, l

  2. 一次移动多个字符 {x}h, x表示一个数字,比如 5h 可以配合 h,j, k, l 

  3. w -- 向后移动一个单词, 光标在单词的第一个字母

  4. b -- 向前移动一个单词, 光标在单词的第一个字母

  5. e -- 向后移动一个单词, 光标在单词的最后一个字母

  6. ge -- 向前移动一个单词, 光标在单词的最后一个字母

  7. $ -- 移动到行尾

  8. ^ -- 移动到行的开始并且不是空字符

  9. 0 -- 移动到行的第一个字符,不管是不是空字符

  10. f{x} -- 移动到一下个 x字符处, 比如 fa fb

  11. F{x} -- 移动到上一个 x字符处

  12. t{x} -- 移动到 x 的前一个字符(向右移动)

  13. T{x} -- 移动到 x 的后一个字符(向左移动)

  14. % -- 相匹配的{}, [], () 之间来回跳转

  15. 1G -- 移动到第一行

  16. 1gg -- 移动到第一行

  17. gg -- 移动到第一行

  18. G -- 最后一行

  19. 90% -- 移动到文件90%的地方

  20. H ,M L -- 分别一移动到屏幕的 最上面,中间,最下面

  21. CTRL-G 显示 光标在文件中位置

  22. :set ruler -- 一直显示光标的位置

  23. ctrl-u -- 向上滚动半个屏幕

  24. ctrl-d -- 向下滚动半个屏幕

  25. ctrl-e -- 向上滚动一行

  26. ctrl-y -- 向下滚动一行

  27. ctrl-f -- 向下滚动一屏

  28. ctrl-b -- 向上滚动一屏

  29. zz -- 当前行是屏幕的中间,前提是上下有足够的空间

  30. / -- 特殊字符的处理 .*[]^%/?~$

  31. ?  -- 向上搜索  , n 下一个

  32. :set ignorecase 不区分大小写

  33. /\<hello\> 单词搜索, 

  34. :set hlsearch -- 搜索大的都高亮

  35. `` -- 如果使用 g 跳转, `` 表示跳回原来的位置

  36. ctrl-o 跳转到更远的地方

  37. ctrl-i 跳回更近的地方

  38. m -- 标记位置可以定义 26个比如 ma, mc 

  39. `a -- 调到m标记a的地方

  40. `` -- 上次跳转的地方

  41. `" --  调到上次编辑的地方

  42. `[ -- 最后一次修改的开始的地方

  43. `] -- 最后一次修改的结束的的地方

#17 vim命令学习 » vim 快捷键 基本操作 » 2015-03-19 14:28:10

admin
回复: 0

  1. k -- 向上移动

  2. j -- 向下移动

  3. h -- 向左移动

  4. l -- 向右移动

  5. x -- 删除一个字符

  6. i -- 有正常模式进入到插入模式

  7. d 删除

  8. dd 删除一行

  9. d$ 删除到行尾从光标开始的地方

  10. d^ 从行开始删除到光标的地方

  11. J -- 两行的合并, 这个是大写的

  12. u -- 撤销

  13. ctrl - r  -- 反撤销

  14. U -- 仅仅撤销在一行的操作

  15. o -- 另一起一行插入(当前行之下)

  16. O -- 另起一行 (当前行之上)

  17. ZZ -- 保存退出

  18. :q -- 退出

  19. :q! -- 强制退出

  20. :help i -- 查看 "i"快捷键的帮助 , help CTRL-A, help index, ...

#18 vim命令学习 » vim 小知识点1 » 2015-03-19 14:11:16

admin
回复: 0

  1.  /usr/share/vim/vim72/vimrc_example.vim  .vimrc 示例文件

  2. :echo $VIMRUNTIME  在vim中查看vim路径

  3. shell 中直接 运行 vimtutor 简单的教程

  4. ciw -- 表示删除一个单词后进入插入模式, 并且光标可以是单词的任何一个位置

  5. diw -- 可以ciw 一样,不过没有进入插入模式

  6. x <==> dl 删除当前的一个字符

  7. X <==> dh 删除左边一个字符

  8. D <==> d$

  9. C <==> c$

  10. s <==> cl 修改一个字符 表示删除当前的然后变为插入模式

  11. S <==> cc 修改一行

  12. r 表示替换一个字符, 替换后没有进入插入模式

  13. xp -- 交互两个相邻的字母

  14. daw -- del a word 包括空白

  15. diw -- 删除一个单词不包括空白

  16. ~ 改大小写

#19 vim命令学习 » vim 中的跳转 » 2015-03-19 14:00:38

admin
回复: 0

跳转使用的 快捷键是 ctrl + ]

比如帮助文件中,使用 ctrl + ] 可以调到响应的主题。

跳回用 ctrl + o

或者 ctrl + t

#20 php技术区 » ci 框架 出现 You did not select a file to upload错误 » 2015-03-13 16:49:34

admin
回复: 0

出现的原因是 

public function do_upload($field = 'userfile')

这个是函数的原型。

默认是  username . 需要改成自己的值

比如

<input type='file' name='myfile' />

正确的使用就是 

$this->upload->do_upload('myfile')


#21 linux学习交流 » linux 中 sshd 登陆延迟解决方法 » 2015-03-11 13:42:42

admin
回复: 0

登陆延迟一般有两个原因导致:

第一: 进行了dns解析

第二: GSSAPI options 是打开的 


针对第一中: 应该 把

UseDNS yes

修改为 

UseDNS no

第二种: 全部注释,或者改为 no 即可


最后重启启动 sshd 服务


#23 php技术区 » php中如何处理风格关键字 » 2015-03-11 11:54:11

admin
回复: 0

这里要考虑的问题是关键字,如果分割的问题。

可以用空格,可以用 逗号, 可以\t 可以用冒号, 有的时候还可以是两个空格...

处理这里用一个正则表达式就可以搞定了

$keywords = preg_split("/[\s,:,]+/", "te,st, hha,sd:");
var_dump($keywords);


#24 php技术区 » php 中常用的字符串函数 » 2015-03-11 11:29:13

admin
回复: 0

// 添加反斜杠

string addcslashes(string $str, string $charlist);


// 仅仅对 单引号, 双引号、反斜线、NUL 添加 反斜线

string addslashes(string $str);


// 把acsii 字符串转变为16进制的数, 但是前面没有 0x

string bin2hex(string $str);


// 把 数变成字母 (ascii范围), ord() 相反

string chr (int $ascii) ;


//把一个字符串,分割成多行

string chunk_split(string $body [, int $chunklen=76 [, string $end = "\r\n"]]);


// 写入文件

int fprintf( resource $handle, string $fomat, mixed $arg1, mixed $arg2 ...);


// 十六进制 变成 二进制

string hex2bin(string $data);


// html实体

string htmlspecialchars(string $string);


// 数组转换成字符串, 函数的别名 join

string implode( string $glue, array $pieces);


// 首字母小写

string lcfirst(string $str);


// 文件的MD5

string md5_file( string $filename);


// 字符串的md5

string md5(string $str);


//

string nl2br (string $strng );


// 字符串解析成变量

void parse_str( string $ster  [, array $arr]);


// 格式话输出

int printf ( string $format [, mixed $arg ...);


// 格式化返回

string sprintf( string $format [, mixed $args ..]);


// 不区分大小写的替换

mixed str_ireplace (mixed $search , mixed $replace , mixed $subject [, int &$count]);


// 填充

string str_pad(string $input , int $pad_length );


// 重复

string str_repeat( string $input, int $multiplier);


// 替换

mixed str_replace( mix $search , mixed $replace , mixed $subject [, int &$count]);


// 区分大小写比较

int strcasecmp(string $str1, string $str2);


// 随机打乱一个字符串

string str_shuffle(string $str);


// 字符串变成数组, 按照长度分

array str_split( string $string  [, int $aplit_lenght = 1]);



// 去除html标签

string strip_tags( string $str [, string $allowable_tags]);


// 删除反引用

string stripcslashes (string $str);

string stripslashes( string $str);


// 首次出现的位置

int stripos ( string $haystack , string $needle);

int strpos( string $haystack, string $needle);


// 忽略大小查找 如果找到了, 返回 开始到 找到的地方

string stristr(string $haystack, mixed $needle );


// 自然比较

int strnatcasecmp(string $str1, string $st2);


// 区分大小写

int strnatcmp(string $str1, string $str2);


// 查找字符串首次出现的位置

string strstr (string $haystack , mixed $needle);


//

string strtolower( string $string);

string strtoupper (string $string);


// 字符串替换

string strtr (string $str, string $from, string $to);

string strtr (string $str, array $replace_pairs);


// 子字符串

string substr( string $string , int $start [, int $lenght]);


//

string ucfirst( string $str);

string ucwords( string $str);


// 打断字符

string wordwrap (string $str [, int $width = 75 [, string $break = '\n' [, bool $cut = fasle ]]] );


#25 php技术区 » php中对url的处理函数 » 2015-03-11 10:32:15

admin
回复: 0

 对字符串进行编码, 用于处理url

 string urlencode( string $str);

 对字符串解码

 string urldecode( string $str);

 

 解析一个url, 获得 协议、主机、端口 ... 详细信息,返回一个数组

 mixed parse_url(string $url [, int $component = -1);

 

 用于构造一个查询

 http_build_query(array('name'=> 'root', 'passwd'=>'123'));  已经经过 url_encode 的编码了

 

 获得 meta 信息, 返回一个数组。

 $tags = get_meta_tags('http:www.xxxx.com');

 

 获得 返回的头信息, 一个数组

 print_r(get_headers($url));

 

 base64编码, 方便传输

 string base64_encode(string $data);

 

 base64 解码

 string base64_decode($string);

 

 url 编码

 string rawurlencode (string $str); 除去-_之外的字符都被传唤

 string rawurldecode (string $str); 


页脚

Powered by FluxBB