作者HuangJC (吹笛牧童)
看板PHP
标题Re: [请益] print_r() ???
时间Thu Jul 17 02:39:03 2008
※ 引述《HuangJC (吹笛牧童)》之铭言:
: eval?
: 有错误,格式不太对 :P
: 然後我用 str_replace 开始调,调半天,快调出来时已经点燃龟蓝趴火了;不,是小宇宙
:
: 突然灵机一闪,我好像看过 serialze 嘛!!
var_export 也是!!
幸好我先想到 serialze,不然用这个字串长很多 :P
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 61.219.65.16
: → kylekai :比起直接输出在画面上干扰输出好多了... 07/16 18:36
其实我想学 remote debug,不知会不会较好
: → HuangJC :谢谢;那 var_dump 太相近了,又有何意义? 07/16 18:47
: → HuangJC :不过比起单机板程式,主管要求我修BUG时做到无缝运转. 07/16 18:48
: → HuangJC :就是不能给user看到 BUG,我想 log to file 很有意义 07/16 18:49
: → kylekai :不能看到 Bug 最简单就是把 display_error = off .. 07/17 00:19
: → kylekai :不过那不叫做看不到 bug ..只是不输出错误讯息.. 07/17 00:19
讲一下今天的 case
因为 phpbb2 的资料栏位太少
我决定在 DB 内新增一个栏位
这个栏位将加强原有栏位的讯息
举例来说,本来的 timezone 是数字,GMT +? 的一个数字
但我想储存国家
比如,GMT+8 有两三个国家(?台湾,日本?大概这意思)
我不只想显示 GMT+8,我想显示 Taiwan
如果我程式一写就对,无缝 update,那也就算了
不过我犯了几个错误
1.我写了个 Parser,读到 'Taiwan',变成 8
2.我把 8 拿去覆写原来的数字
3.如果今天 bbs 跑到一半,我才新增栏位及程式
有些旧 bbs user 因为这栏位是 default 值,其内为空白
parser 解到空白,回传 false,crash(白画面),or 0
4.false or 0 被覆盖给原来的 GMT 时间,结果原本正确的台湾时间又变格林威治
5.因为有多台机器(至少有 local 及机房两台,local 写好透过 CVS 转送机房)
所以 local 有新增栏位及程式
但其他同事如果先 check out 程式,没有新增栏位,可能发生..
sql insert 指令硬要塞资料进入还没新增的栏位;crash,白画面
6.sql select 硬要读不存在的栏位;crash,白画面
7.读不出来的栏位,其变数就是 unset,使用 unset 变数,可能预设为 0
总之,我不该存取未存在栏位
也不该用 unset 变数去运算,反而盖掉原本正常储存的数字
不加 feature 还好,一加全乱
以上我不知是不是把 error 改 warning 全可解决...
应该不太行,只有 GMT 时间是小事
其他不存在栏位存取,那整道 mysql 指令就是 return false
也就造成 bbs user 永远无法登入 XD
那就算暂时无法登入没关系,没白画面那麽糟好了
当我要 debug 时,我一直搞不懂问题出在哪里
要知道我 local 可是跑得很顺咧
所以,我就好想在程式中设中断,印变数 XD
print_r($var);exit;
这是我最爱做的事
然後全世界的 user 都看到白画面,把我干到开花..Q_Q
所以,remote debug 是不是容易点?
啊!我想到了,锁 IP
只有我这台电脑可以启动 DEBUG CODE
if ( ip==MyIP ){
print_r($var);exit;
}
以及
if ( ip==MyIP )
define(DEBUG,1); //phpbb2 有支援里面的 debug
这样是不是可以安全点 XD
不然我实在很难无缝 debug..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.219.65.16