背景:在以前初始化一个数据库句柄:

为何都这样写单例模式?层层分析:
http://www.cnblogs.com/hongfei/archive/2012/07/07/2580994.html


——————————————————————————————————————
上面Url里提到各种调用调不了,出问题的一个小小总结如下,也有总结不对的,说是静态函数被类调用不需要执行析构函数是不对的,执行了,但没有创建对象是真:
在php中,访问类的方法/变量有两种方法:
1. 创建对象$object = new Class(),然后使用”->”调用:$object->attribute/function,前提是该变量/方法可访问。
2. 直接调用类方法/变量:class::attribute/function,无论是静态/非静态都可以。但是有前提条件:
A. 如果是变量,需要该变量可访问。
B. 如果是方法,除了该方法可访问外,还需要满足:
b1) 如果是静态方法,没有特殊条件;
b2) 如果是非静态方法,需要改方法中没有使用$this,即没有调用非静态的变量/方法,当然,调用静态的变量/方法没有问题。

然后我们再看一下使用$object->… 和使用class::… 都有什么区别:
1. 使用$object->… ,需要执行构造函数创建对象;
2. 使用class::… 调用静态方法/变量,不需要执行构造函数创建对象;
3. 使用class::… 调用非静态方法/变量,也不需要执行构造函数创建对象。

然后奇怪的地方就出来了,既然2和3都一样,那静态方法/变量存在还有什么意义呢?
差异还是显然存在的,如下:
1. 静态变量
静态成员只保留一个变量值,而这个变量值对所有的实例都是有效,也就是说,所有的实例共享这个成员。
2. 静态方法
静态方法可以直接使用class::… 来调用,而非静态方法需要满足一定限制条件才能使用class::.. 的方法调用,如之前所述

来自:http://www.jb51.net/article/29717.htm

这时我们不得不重新初始化一个数据库句柄,试想多个应用场景下,这样的代码是多么可怕啊?!

有些朋友或许会说,我也可以不这样做啊,我直接利用global关键字不就可以了吗?的确,global可以解决问题,也起到了单例模式的作用,但是 OOP中,我们拒绝这样来编写代码,因为global存在安全隐患,请参考相关书籍,同时单例模式恰恰是对全局变量的一种改进,避免了那些存储唯一实例的 全局变量污染命名空间
global $db;  //OOP中,我们不提倡这样编写代码
使用单例模式编码

如有的KO框架里写的读取配置文件:

阅读全文
如何选中整个行?
左键单击三次要选中的某一行,这样就选中整个行了。
阅读全文
背景:我发现postfix安装后有很多sendmail的僵尸进程,怎么办,最彻底的办法是删除掉这个sendmail,最后发现其vps上有postfix,于是删除掉。
删除postfix步骤,它默认会安装sendmail的:
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64
错误:依赖检测失败:
        /usr/sbin/sendmail 被 (已安裝) redhat-lsb-core-4.1-27.el7.centos.1.x86_64 需要

[root@iZ25dcp92ckZ ~]# rpm -e redhat-lsb-core-4.1-27.el7.centos.1.x86_64
[root@iZ25dcp92ckZ ~]# rpm -e postfix-2.10.1-6.el7.x86_64    
whereis sendmail
sendmail:  //没有了sendmail。
安装postfix:
http://free.yes81.net/yes81/view-13491.html
阅读全文
模拟个UC的原因是,有些网站,指明要UC浏览器,所以对于我们Chrome来讲,其实也能模仿UC,目的达到也就OK了,
如下:
苹果按Option+Command,Windows按下F12,在Elements的右边有一个竖着的三个点,点一下,里面有一个项是把这个挑食工具放浏览器的左边还是右边,
在下面还有一个项是Settings 点进去后,下面有一个Device,输入自己的浏览器UC,然后,再在网上找一个它对应的浏览器头,它前面有一个CheckBox,勾选上,其它的不勾选即可。再打开你想要看的网站,就Ok了。

IOS UC:
Mozilla/5.0 (iPhone; CPU iPhone OS 10_1_1 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/14B100 UCBrowser/11.2.6.887 Mobile AliApp(TUnionSDK/0.1.6)

Android UC:
Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile Safari/537.36 UCBrowser

最后,要想模拟生效得F12后,进入开发者模拟点模拟的那个图标才行。

参考自https://jingyan.baidu.com/article/46650658235a46f549e5f893.html,但是新版本的Chrome不一样,如下:
来自:http://www.173.net/blogs/5




Chrome dhc插件-DHC是一款可以模拟HTTP客户端向服务器发送指定数据的谷歌浏览器插件。
http://chromecj.com/web-development/2015-08/549.html


======================================================================
有些网站对IPAD和PC产生不同的HTML代码
由于IPAD的safari不支持查看源码,
所以,将firefox模拟成IPAD可以更好的了解别人写的代码

在firefox地址栏打上 about:config
进入config设置
将general.useragent.extra.firefox
修改成Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B500 Safari/531.21.10
这样就欺骗了某些用useragent判断客户端的服务器

查看一些为HTML5写的代码了。
测试一下,连新浪博客都认为我是在用ipad上网。


阅读全文
http://levi.cg.am/?p=930

http://www.mb5u.com/biancheng/php/php_94026.html

http://www.phper.org.cn/?post=64

http://hi.baidu.com/seatle888/item/db73f4db0a084919d78ed099

http://justcoding.iteye.com/blog/602494
背景:两种盘的读写速度不一样,于是要看一下到底是哪种:
df -h
有sas硬盘吗 ?还是SATA啊?
linux下SATA硬盘是 hda , SCSI硬盘是sda
背景:php做cli模式(也就是后台终端运行时),通过ps aux|grep php时出现的都是如php的文件名的进程,于是在php5.5里加入了类似windows'下的服务名来进行标识。

PHP5.5新增cli_set_process_title/cli_get_process_title, 这样一来, 大家可以给后台运行脚本起一个有意义的名字了. https://wiki.php.net/rfc/cli_process_title
雨林木风系统Ghost:IE QuickLanch
C:\Documents and Settings\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch
C:\Documents and Settings\Administrator\Application Data\Microsoft\Internet Explorer\Quick Launch

都有:启动 Internet Explorer 浏览器.lnk
右键属性:
"C:\Program Files\Internet Explorer\IEXPLORE.EXE"  http://www.24611.com
于是修改去掉;24611这个网址。发现有程序在访问,但用;wholockme来看没有。
操作:常规属性去掉只读,同时去掉这个网址即可。
[易*]韩天峰(*********)  17:34:07
http://pecl.php.net/package/event
event扩展
[易*]韩天峰(*********)  17:51:42
http://pecl.php.net/package/AOP
PHP  AOP编程扩展
twinhuang-广平(*********)  17:56:11
aop还是挺不错的,可以做很多有趣的事
Jack-回忆未来(*********)  17:57:50
AOP是什么意思?
面向切面编程
maxiezhang-qz***(*********)  17:58:37
是指不改变原来程序结构,可以强势插入代码么?
令狐雨辰(*********) 2013/3/8 下午 18:22:15
https://github.com/AOP-PHP/AOP
就刚讨论的这个呀
PHP-干不明白(*********) 2013/3/8 下午 18:22:33
o
Sango(*********) 2013/3/8 下午 18:22:49
热部署真是个银弹啊
令狐雨辰(*********) 2013/3/8 下午 18:25:08
这个现在还有些BUG
https://github.com/AOP-PHP/AOP/issues
等个稳定版,直接用上。
Rango(*********) 2013/3/8 下午 18:25:15
统计执行时间也可以用AOP,before前记录一个时间,after再记录一个
令狐雨辰(*********) 2013/3/8 下午 18:25:50
嗯是的。总之确实是很有用。
Sango(*********) 2013/3/8 下午 18:22:00
在php热部署的能力下,加上xdebug,这玩意要逆天了
背景:
项目时间本来就该是根据deadline倒排的。
这就是前sina的开发方式,王志东的搞法。

出自《四火的唠叨》:http://www.raychase.net/1169
阅读全文
越来越感到由软件吞噬的世界即将发生为硬件的复兴,今年将会是这两个世界错综相映的一个端倪。硬件通过各种各样的传感器来感知环境,深受设计师、艺术家,更多的是爱好者的喜爱于追捧,而赏心的细腻感知和愉悦的操控感应将是未来的主流,即将有一两款上述趋势产品被开发出来挑战屏幕和声音等触碰产品。  2013-03-06 Jackxiang

http://www.arch.nctu.edu.tw/works/thesis/2005/sss.pdf
前些天项目碰到这个问题,在ie下可以直接调用iframe里的js函数
如:
document.getElementById('iframedemo').targetfunction();
但是这段代码在firefox下报错,于是上google搜索,发现一个解决办法,在ie和firefox
下均工作正常,代码如下:
document.getElementById('iframedemo').contentWindow.demofunction();
其中iframedemo是iframe的id

来自:http://www.cnblogs.com/lovelace821/archive/2009/08/03/1537777.html
补充:
contentWindow属性是指指定的frame或者iframe所在的window对象
在IE中iframe或者frame的contentWindow属性可以省略,但在Firefox中如果要对iframe对象进行编辑则
必须指定contentWindow属性。


主要知识点

1:document.getElementById("ii").contentWindow 得到iframe对象后,就可以通过contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了;

2:$("#ii")[0].contentWindow  如果用jquery选择器获得iframe,需要加一个【0】;

3:$("#ii")[0].contentWindow.$("#dd").val() 可以在得到iframe的window对象后接着使用jquery选择器进行页面操作;

4:$("#ii")[0].contentWindow.hellobaby="dsafdsafsdafsdafsdafsdafsadfsadfsdafsadfdsaffdsaaaaaaaaaaaaa"; 可以通过这种方式向iframe页面传递参数,在iframe页面window.hellobaby就可以获取到值,hellobaby是自定义的变量;

5:在iframe页面通过parent可以获得主页面的window,接着就可以正常访问父亲页面的元素了;

6:parent.$("#ii")[0].contentWindow.ff; 同级iframe页面之间调用,需要先得到父亲的window,然后调用同级的iframe得到window进行操作;

来自:http://bakcom.iteye.com/blog/1757449



找了一篇文章的实践情况如下:
实践内容来自:http://bakcom.iteye.com/blog/1757449
main.html


frame.htm


newFrame.htm:
背景:
      问题是发现有些浏览器发现flash没有发出get请求,后来修改为直接用浏览器去触发事件调用flash里的函数,哇哈哈。(Flash判断浏览器窗口关闭函数可能有问题)
问题:1)有没有一种工具实现所有浏览器的http协议请求?
         2)浏览器里的Flash怎么实现抓Flash如get/post/socket 请问用什么工具?

     用浏览器连接一个flash做的网游,在navigator事件中可以抓到页面的post,get请求的url。但是里面flash所发出的post,get无法抓到,有什么办法可以抓到吗?用httpwatch是可以抓到的。我想在程序中抓到。
回答:
1)Fiddler是最强大最好用的Web调试工具,用它可以满足你的要求。
2)HttpAnalyzer+V7.0.1+破解,你要有钱购买一下可以抓所有浏览器下的请求。我试了下chrome也行。

   如果仅仅是get:试了下用httplook可以对IE,Firefox进行抓,也能看到,其实IE下的httpwatcher和Firefox下的firebug都能看到,chrome下用httplook看好像没有东西。
它是个好帮手,但真正要想看清Flash里的返回,还是得fiddle:

Http能捕获IE,Firefox,Chrome浏览器,用它来看是不错的选择,有时调试Flash的get/post问题时有效使用该工具是不错的选择。[它还可以捕获Flash发起的POST请求喔,这个有点重要。]
HttpLook使用问题解决方案:
       httplook是一款很不错的http协议分析工具,在使用过程中,却容易出现以下几种问题:

1. httplook没有拦截。
       这属于使用问题,应先打开httplook,并启动拦截,然后再打开ie浏览相关网页即可。

2. IE随着httplook关闭而关闭。
       解决办法:取消Capture Settings中的Install https capture module at startup选项。这个选项如果选中还会带来其他系统问题,建议关闭。

3. httplook打开后ie不能上网。
       解决办法:这个问题的根本原因就是80端口被占用或者被监控或拦截。1、查看80端口是否被其他程序占着,有则关闭之。2、防火墙是否对80端口关闭。3、杀毒工具(如卡巴)是否监控着80端口,有则删除之。Windows下查看端口使用命令:netstat

      做好以上几点,相信你会非常喜欢这个东东。good luck!

来源:http://my.oschina.net/u/251658/blog/68413

HTTPLook 注册码:
HTTPLook是一款http嗅探器,可以给出站点完整图片。HTTPLook可以在本地机合服务器之间重发数据。 Name:crsky Code:79C01-97344-29247-28692-2934I


上面都不行啊,最后下了Ok的:
http://ishare.iask.sina.com.cn/download/explain.php?fileid=4791179
背景:做Flash关闭时做下统计视频的浏览数,想发个请求给服务器+1,Firefox,IE9,(IE8不行)都行,再就是Chrome不行,如下备案。
常常的网上结论是这样的:
1、window.onbeforeunload()函数主要是用于捕获关闭浏览器事件(包括刷新);
2、window.onunload()函数主要是执行关闭游览器后的动作;

实践中听说firefox有些问题:

在footer.html里调用:

在每个访问的页面里包含:



在这个footer.html里包含的是另一个js的域名:(较大网站都这么干,程序和css,js分开以分摊服务器的压力)
在footer.html这个模板里有如下js,分析这个staticURL:
<script src="<{$staticURL}>js/justwinit.common.js?ver=<{$version}>" type="text/javascript"></script>
preview.php 把这个配置给render到smarty模板里:
$this->view->staticURL = KO::config('url.static_url');
url.php里配置该静态文件的域名,这个在apache里配置好,下面会有示例:
'static_url'            =>'http://s.jackxiang.com/',
Apache配置域名:


用普通的js无法实现在兼容监听IE,FF,Google等浏览器的关闭事件。 经过测试,用jq是可以实现兼容的,不过并不保证完全兼容,还需要你自己测试一下,只需一句简短的语句就可以至少兼容三大浏览器了:


但:
chrome浏览器支持onbeforeunload事件吗?
Chrome Safari 在调用 document.write、document.open、document.close 方法以及 "javascipt:" 伪协议时,不会触发 onbeforeunload 事件。

http://w3help.org/zh-cn/causes/BX2047

是bug,见http://code.google.com/p/chromium/issues/detail?id=4422

用的时候chrome并不支持onbeforeunload。
window.onbeforeunload=function(){...}不执行其中的代码

$(window).bind('beforeunload', function(){
    alert("Good Bye")
});
Works great with Firefox, IE8 but not in Chrome. Is it a known problem or is there any alternative for that ?

Actually what I am trying to do is to log details whenever user tries to close the browser.

function LogTime()
{
    jQuery.ajax({
      type: "POST",
      url: "log.php",
      data: "",
      cache: false,
      success: function(response)
      {
      }
  }
    );
}
$(window).bind('beforeunload', function(){
    LogTime();
});
This works well in Firefox, but not in Chrome

From:http://stackoverflow.com/questions/10680544/beforeunload-chrome-issue

老外说的Ajax,我也试了,也确实不行的,测试下其他的方法,当写成这样:
window.onbeforeunload = function() {
  console.log("Helo test chrome beforeunload");
  callExternal();
};
或:
<body  onunload="alert('Helo test chrome unload')">
里面有Alert这些输出时,会有如下提示:
Blocked alert('Helo test chrome beforeunload')。
Blocked alert('Helo test chrome unload') during unload。

最后使用Iframe调用的方法:
加入:
<iframe id="iframedemo" name="iframedemo" src="inner.html" width="10%" frameborder="1"></iframe>  
inner.html:
<script language="javascript">
function demofunction() {
    console.log("1222");
    alert("demofunction");
}
</script>
问题依旧提示有问题,嗨,怎么办呢?
在IFrame用Ajax也不行:

阅读全文
分页: 90/271 第一页 上页 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 下页 最后页 [ 显示模式: 摘要 | 列表 ]