分类 默认分类 下的文章

示例 http://localhost/demo/t.php/test1/test2/?a=123&b=234

/demo/t.php //$_SERVER['SCRIPT_NAME']
/test1/test2/ //$_SERVER['PATH_INFO']
/demo/t.php/test1/test2/ //$_SERVER['PHP_SELF']
a=123&b=234 //$_SERVER['QUERY_STRING']
/demo/t.php/test1/test2/?a=123&b=234 //$_SERVER['REQUEST_URI']

如上的示例中:
$_SERVER['SCRIPT_NAME']获得的是当前程序的目录和文件名
$_SERVER['PATH_INFO']获得的是.php以后至?号之前的路径
$_SERVER['PHP_SELF']等于$_SERVER['SCRIPT_NAME'] + $_SERVER['PATH_INFO']
$_SERVER['QUERY_STRING']是?之后的所有参数字符串
$_SERVER['REQUEST_URI']是整个url路径,可以行于以下2种:

  1. $_SERVER['SCRIPT_NAME'] + $_SERVER['PATH_INFO'] + $_SERVER['QUERY_STRING']
  2. $_SERVER['PHP_SELF'] + $_SERVER['QUERY_STRING']

google常用域名有哪些?

*.google.com
*.gvt1.com
*.gstatic.com
*.youtube.com
*.googleusercontent.com
*.googleapis.com
*.google-analytics.com
*.ytimg.com
*.ggpht.com
*.blogspot.com
*.appspot.com
*.blogger.com
*.gmail.com
*.goo.gl
*.g.co
*.yt.be
*.abc.xyz
*.youtu.be
*.gvt0.com
*.admob.com
*.golang.org
*.picasa.com
*.urchin.com
*.com.google
*.chrome.com
*.android.com
*.keyhole.com
*.adsense.com
*.adwords.com
*.blogblog.com
*.sketchup.com
*.chromium.org
*.gmodules.com
*.googlebot.com
*.doubleclick.net
*.googlelabs.com
*.panoramio.com
*.withgoogle.com
*.doubleclick.com
*.feedburner.com
*.googlemail.com
*.googlecode.com
*.googleapps.com
*.googledrive.com
*.googlestore.com
*.googleearth.com
*.googlevideo.com
*.googlemaps.com
*.googlepages.com
*.chromebook.com
*.googlesource.com
*.googlehosted.com
*.googlegroups.com
*.googlescholar.com
*.googleartproject.com
*.googleadservices.com
*.googlecommerce.com
*.googlesyndication.com
*.googletagmanager.com

1.安装

a. 这里使用了一个zend debugger工具合集,包括了ie和firefox的控件,附件中有。
下载地址: http://pan.baidu.com/s/1i3r96Vr ,zend官方下载地址是:http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.14-cygwin_nt-i386.zip

解压开,内附的readme.txt说明文件。

b.通过phpinfo()看了一下自己的环境,是php5.2.3,开启了Thread Safety是开启的。

c.找到5_2_x_comp中的ZendDebugger.dll copy一份放到我的document root目录中,我使用的是D:\AppServ\www,把dummy.php也放到此处。
(5_2_x_nts_comp适用于tread safety关闭的情况)
dummy.php放入后,要保证使用你的运行url能访问,比如http://localhost/dummy.php 否则后面在ide中调试的时候连接不上。

d.打开php.ini文件,加上几句并保存:

zend_extension_ts=D:\AppServ\www\ZendDebugger.dll //注意此路径就是zenddebugger.dll实际位置
zend_debugger.allow_hosts=127.0.0.1/32,192.168.1.88/24 //ip填自己的真实ip,127.0.0.1/32是本机回环地址必不可少,另一ip填自己的网卡ip
zend_debugger.expose_remotely=always

e.重启apache,查看phpinfo(),如果有Zend Debugger一栏,说明已zend debugger安装成功。

2.IDE配置(zend studio8)
虽然zend debugger安装成功了,但是ide中却没有关联上,比如我们在ide中点一下调试按钮,ide并不知道从哪里调用。如下配置:

a. 配置zend debugger运行地址
在当前项目上点右键 -- properties -- PHP Debug ,窗口右边有php debugger ,这里选择zend debugger, 点confirgure进内页,client host/ip,比如我的dummy.php文件路径是http://localhost/dummy.php ,那我这里就填localhost或者127.0.0.1就好了。
其它的都不用管就行了,看到debug port默认的是10137,试了一下telnet 127.0.0.1 10137是通的,说明当ide启动时,debug监听了这个接口。

b.配置当前项目的运行路径
这个说白了,就是你做此项目时使用的域名,在当前项目上点右键 -- properties -- server -- 点php server进内页,默认名称不管,下面的url填上http://www.test.com 。
因为我启用了vhost,并且使用的域名是www.test.com,如果没有启用vhost使用默认的127.0.0.1或者localhost,那这里就用默认的127.0.0.1就好了。

3.调试
我现在遇到一个问题,在一个叫index.php中程序运行中得到的是错误的结果,那我们就使用debug来调试它。

A. 启用zend debugger有下面几种方法:

1.直接点窗口上的debug按钮(一个绿色虫子图标),弹出一个窗口,让输入url地址,那就手工输入,包括相应的get参数都一并输入,回车就进入debug窗口模式。
IDE窗口上可以看到当前调试的页面是www.test.com/lindex.php

2.在项目左边点想要调试的文件,右键 -- debug as -- php webpage ,也一样会跳到debug模式窗口。

3.使用浏览器控件。这种方式最简单,因为上面两种都是直接进url没有提供参数,而使用控件在问题页面一点,直接都传到ide中来了。
新版火狐安装控件会报错:"此附加组件无法安装,因为它未经验证"
手机进入about:config ,找到xpinstall.signatures.required ,设为false即可。
参照:http://jingyan.baidu.com/article/6c67b1d69fbeab2786bb1e69.html

B.打断点

在想要看到运行时结果的行号上双击,就是一个断点,当程序走到这里,会暂停。按窗口上的step over执行下一步,step return会路过当前这一步。
在这个过程中,我们可以看到当前变量的值和程序跳转的过程,查出问题。

F5 step info 单步,遇到子逻辑,也会进入一步步走
F6 step over 单步,遇到子逻辑,直接运行取结果,不会进入一步步走
F7 step return 单步,遇以子逻辑会直接跳过

看了看,都计算机类的,主要有linux、python、php、mysql、web前端、互联网营销之类的。用kindle阅读器的pc版观看,都是网友分享的正版书,有图有文字,还不错,推荐一下.
btsync: BI3ACGSYU7DTURRU44AKLJ6FQNYXZG64P

喜欢给个好评哦!

html表单分为三种:select/option下拉框、checkbox多选框、radio单选框。

jquery中对表单的选中设置可以通过val()和attr()来进行。

**

select

**

QQ图片20160614155804.png

如上的代码,我们先来看看取值。

上图中对第一行option设置了selected,用val()取值,得到的是"1",如果把value="1"去掉,结果就是"选择1号"

这说明这两个都可以被val()当做值取出,只是value="1"优先。

那么怎样设置选中呢?
使用val()
如果没有value="1",使用$('#single').val("选择1号")进行设置,
有value="1",则使用$('#single').val('1')进行设置。

使用attr()
$('#single').attr('selected',true);

为什么会这样呢?
我们在写代码的时候,select/option的下拉中往往显示的是描述性文件,比如"1-张三" "2-李四" 这样,真正传给后台的,是这个option的id(通常写在value=""中),如果在下拉中直接显示1 2,这样看起来不直观。

好的做法是,在value=''中写入id,在标签对之间写此id的描述性文字,也就是:

<option value="1">选择1号</option>

使用val('1');设置选中,表单传到后台的是id ,在下拉中也能显示出必要的描述。

**

checkbox

**

checkbox用于多选,提交的时候获得到的是一个数组。设置单个选中传字符串,设置多个选中传数组。
设置选中的方法同上面的select,可用val()也可用attr(),区别在于使用attr()时设置属性名为 attr("checked",true)''
用val()设置多个选中时,需要传入数组格式 val(['1','2','3']);
由于input checkbox实际上是多个独立的input,所以在获取后,需要遍历出结果。

**

radio

**

用于单选,一组radio需要设置相同的name,提交的时候获得到的是一个数组,设置选中必须要传数组。
使用attr()时设置属性名为 attr("checked",true)''

参考资料:http://www.cnblogs.com/joboxs/p/3557436.html