南方 发布的文章

---------------------------------------
博客的特殊字符处理也不太好,还是乱的,文末提供了原文的txt下载
---------------------------------------

关于addslashes()的应用,php的魔术引用(magic_quotes_gpc),在segmentfault上面有很多的提问,大部分都没能明白的说清楚。当然,我也疑惑了很久,虽然有时候弄清楚了,但过一段时间又忘记,搞的自己总是反复的为这个问题纠结。俗话说好记性不如烂笔头,那不妨写下来。

本文不涉及到pdo和mysql的prepare预处理的部分,如果你是做一个新系统建议直接使用这种方法。如果你有一个老系统,改来改去很麻烦,那就接着往下看。本文涉及到的环境是php5.2x-5.3x版本。

好了,标题上写到了addslashes(),原因是问这个的人太多,我在这里将把问题从php特殊字符的处理方面来说说。我把php的特殊字符分为两类,如下:

magic_qoute、addslashe、stripslashes、单引号、双引号
a.addslashes与magic_quotes的关系
b.stripslashes
c.变量中的'和"怎么处理

破拆号、htmlspecialchars
a..对输出到html标签内的特殊字符进行转义
b.富文本编辑器输出转义

附件: 我我我 上面点右键->另存为 到自己电脑,把后缀.jpg改成.txt即是原文。

------------centos7 Ubuntu 16 或 debian 8---------------------

使用systemd配置开机自启,适用于 centos7 Ubuntu 16 或 debian 8。

vi /etc/systemd/system/frps.service 新建此文件,并写入以下内容:
[Unit]
Description=frps daemon

[Service]
Type=simple
ExecStart=/usr/bin/frps -c /etc/frps/frps.ini

[Install]
WantedBy=multi-user.target

启动并设为开机自启。
$ systemctl start frps
$ systemctl enable frps

参照:lcbk.net/9766.html

------------centos6.5及以下---------------------
vi /etc/rc.local
在最下面加一行/usr/sbin/frp/frps -c /usr/sbin/frp/frps.ini
其中 /usr/sbin/frp是程序放置的目录,重启ok

vbox虚拟机的小鸡启用多核 环境,母机是win7 64位,cpu启用了虚拟化支持,安装了vbox,小鸡安装了xp,但是出现了一个奇怪的问题。 母机上面为小鸡设置了启用双核,启用了IO /APCI,但是小鸡里面只能看到单核,这个卡啊。 找了很多网上的办法,最后得以解决,需要在小机上使用新的设备管理器配置一下。 1.小机安装新的devcon,并设置 在小鸡中下载。 官方下载地址是https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff544707(v=vs.85).aspx ,但是下载很不方便,安装很大一个包,忽略。 这里有一个干净的 https://pan.baidu.com/s/1c165r0G 下载解压后得到devcon.exe, 对这个文件进行再解压。 会有i386和ia64两个目录,我的小鸡是32系统,于是把i386目录下的devcon.exe复制到c:/windows/system32目录下。 执行: devcon sethwid @ROOT\ACPI_HAL\0000 := +acpiapic_mp !acpiapic_up devcon update c:\windows\inf\hal.inf acpiapic_mp 2.母鸡 小鸡 -> 系统 -> 主板,启用I/O APIC 小鸡 -> 系统 -> 处理器,设置成2 3.重启小鸡,进去看到双核。 参考:http://blog.csdn.net/fengda2870/article/details/18841153

新浪微博极为操蛋,新买一个手机机注册微博时提示账号已存在,用手机短信登录后,看到这个账号是前手机号的使用者注册过,此时前使用者无法更改成新手机号,我也没有办法解绑,只能打人工。

新浪微博的400电话永远是找不到人的,只能耐心的经过后台:

方法一:
关注“微博客服”,发私信将你的遭遇blahblah都写给他,如果他受理,将会在私信里进入处理流程。

方法二:
进入"微博帮助",http://help.weibo.com/self/query ,把问题情况写清楚,客服接待后会进入上面第一步的流程。

.

安装python的时候提示关于api-ms-win-crt-runtimel1-1-0.dll,经过摸索问题解决。

由于我是win7 64位系统,所以按下面方法解决:

1.安装win7 sp1,注意是x64版本。
Win7 SP1 的补丁码是 KB976932,
链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=5842

2.安装KB2999226补丁(64位)
补丁码:KB2999226
链接:https://www.microsoft.com/zh-cn/download/details.aspx?id=49077

3.安装python环境,问题解决。

在win7下安装了appserv2.5.9,环境是php5.2,这是我一直用了很多的的套件。由于最近要用phpmailer,需要用到openssl,于是按网上的一些方法进行配置,如下:

------------------------------
1.打开c:/windows,里面有一个php.ini文件(AppServ居然将php的配置文件移到这里来!),然后在里面搜索 ;extension=php_openssl.dll ,把前面的逗号去掉。

2.进入AppServ的安装目录,到php文件夹里面,分别搜索 libeay32.dll 和 ssleay32.dll ,把它们复制到 c:/windows/system32 下面

3.重新启动 Apache,就可以了,至于phpMailer的使用方法,请参考phpMailer的例子。
------------------------------

按上面的做了,但是重启http phpinfo()中还是没有openssl,难道是appserv2.5.9本身就没有openssl?

我用虚拟机跑了一台xp sp3,安装appserv2.5.9,启用openssl成功。于是在win7中把httpd.exe改兼容xp sp2和sp3,还是启用不了。由于appserv2.5.9是2007年的套件,看来在win7中跑是没有希望了。

只是由于不死心,偶然考虑到会不会是系统位宽的问题,32位与64位的系统的环境变量目录不一样,32位是c:/windows/system32,64位是c:/windows/SysWOW64,我现在用的是win7 64位系统。怀着试一试的心态,把libeay32.dll ssleay32.dll这两个文件都copy到c:/windows/SysWOW64目录下。

重启httpd, openssl启动成功。

英文网站seo/外链交换加群:454108194
法语网站seo/外链交换加群:454108194
德语网站seo/外链交换加群:454108194
西班牙语网站seo/外链交换加群:454108194
俄语网站seo/外链交换加群:454108194

自己写代码打断点比较容易,firebug直接会跳到断点处。

但是经常分析别人的代码,由于js写的很多很复杂,jquery和一些js框架通常是动态绑定的,js动作不直接写在html标签中,要想定位js的执行点比较困难。

1.当鼠标划过一个元素产生了动作,怎么定位这个动作执行了哪个js文件的哪个函数呢?
2.引申出另一个问题,怎样不打断点调试js ? 比如input submit绑定了click事件,怎样能够自动定位到js执行点。

上面两个问题,其实是js调试的另一个侧面,通常我们都是先打断点,然后浏览器暂停在断点处我们来看数据。不过借助工具,我们确实可以通过事件定位到js的执行点。
我最常用的是firebug,但firebug在这方面有明显缺陷,下面使用chrome自带调试工具和firefox自带调试工具说明。

下面提供两个方法:
1.chrome调试工具
a. Chrome中按F12调出调试面板,找到Sources,Event listener Breakpoints,这里勾选我们要监听的事件,比如click mouseover,当网页执行到的时候自动打断点,我们此时通过看变量判断错误。
b.开启 Chrome F12 的 Performence 记录,Event Log 里面有执行过的记录;
监听事件调试javascript

2.firefox默认的调试工具
代码中使用一个jquery给input submit绑定一个事件, 使用火狐f12自带的调试工具,会在这个元素后面显示一个ev,点开后可以看到执行的js文件和事件,确实很好用。
监听事件调试js

firebug已经于2016年底停止更新,看来是要用心了解一下火狐自带的调试工具了。

ie7及以前的版本都不带调试工具,所以在遇到运行错误的时候,ie的左下角边框上会出现一个三角叹号 ,双击可以看到详情。但由于无法看到详细情况,实用意义不大。
ie7及老版本用户可安装IEDeveloperToolBar工具,再安装一个cachepal用于清缓存,十分方便。
ie8及新版本直接按F12,即可弹出自带工具。

chrome自带调试工具,跟firefox下的firebug工具类似,按F12键弹出,但是还是觉得firebug好用。
firefox,ff有着强大的插件库,安装firebug,在界面上按F12,会弹出调试窗口,基本上可以应付所有的javascript和css调试。

firefox在遇到js故障的时候没有ie中的叹号,但提供了一个更为强大的浏览器控制台,可以实时看到网络、css和js加载过程中的问题。
firebug调试


调试
以下面这段简单代码,我们跟踪一下其调用过程。
js调试

1.打开firefox的firebug工具,按窗口上的虫子图标或者F12都可以。
2.启用firebug的脚本调试功能
firebug调试js

3.刷新调试页面,脚本窗口捕获所有的脚本内容
javascript调试

为了能够看到第一步的过程和值,我们在前面行号上面点击,即可打断点,同时出现一个红点。

4.点击一下脚本所在的元素,此例是一个input button。
js调试

如上图,左边的窗口显示当前位置在第10行alert('doTest') ,说明程序已经从input中的onclick="doTest()"进到函数中来了。

此时如果alert中的内容是一个变量,比如this,鼠标悬停上来可以看到变量内容。
右边的窗口显示的时当前元素的属性。比如当前this位置、属性等。

5.步骤
在代码窗口的右上角,有几个或蓝或橙色的按钮,这是用于控制程序步骤的。多数情况下,使用步进一步步查看过程。