亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

調(diào)試一段PHP程序時遇到的三個問題

 更新時間:2012年01月17日 23:38:03   作者:  
調(diào)試一段PHP程序時遇到的三個問題,學(xué)習(xí)php的朋友可以參考下。
1,filesize()函數(shù)返回錯誤的值。
使用curl將某個頁面下載到本地時,需要將下載到的臨時文件tmpHtml.txt的內(nèi)容讀取到一個緩沖區(qū)中。由于我使用fread()進(jìn)行讀取,需要傳入要讀取的大小,所以先用filesize(‘./tmpHtml.txt')獲取臨時文件大小。怪異的是,獲取到的臨時文件大小不正確,下斷點(diǎn)調(diào)試,在filesize()調(diào)用后,手工去硬盤上尋找文件,文件大小與filesize()得到的結(jié)果不一樣。
在php.net上搜索filesize,可以看到函數(shù)說明中有這么一句:Note: 此函數(shù)的結(jié)果會被緩存。參見 clearstatcache() 以獲得更多細(xì)節(jié)。
再去查閱clearstatcache(),果然找到了原因:
PHP將緩存這些(提供了函數(shù)表供查詢)函數(shù)的返回信息以提供更快的性能。然而在某些情況下,你可能想清除被緩存的信息。例如如果在一個腳本中多次檢查同一個文件,而該文件在此腳本執(zhí)行期間有被刪除或修改的危險時,你需要清除文件狀態(tài)緩存。這種情況下,可以用 clearstatcache() 函數(shù)來清除被 PHP 緩存的該文件信息。
2,在UTF-8編碼的PHP腳本中,對GBK編碼的中文網(wǎng)頁內(nèi)容做模式匹配時,如何匹配中文。
在昨天的開發(fā)中,需要匹配包含GBK編碼字符串‘蘋果'的內(nèi)容,所以寫出如下代碼:
復(fù)制代碼 代碼如下:

$pat = '/<img onclick="zoom\(this, \'(attachments.*?)\'\)".*?alt="蘋果\.jpg" \/><\/a>/';
$pat = iconv(‘UTF-8', ‘GB2312', $pat);
$ret = preg_match_all($pat, $contents, $matches);

可是死活匹配不上,于是嘗試先將內(nèi)容轉(zhuǎn)換成UTF-8編碼,如下:
復(fù)制代碼 代碼如下:

$pat = '/<img onclick="zoom\(this, \'(attachments.*?)\'\)".*?alt="蘋果\.jpg" \/><\/a>/';
$contenst = iconv(‘GB2312', ‘UTF-8', $contents);
$ret = preg_match_all($pat, $contents, $matches);

于是就能匹配上了。但是想不通啊,懷疑這里面有詐。
但悲劇的是,今天又用了第一種方法,又匹配中了??磥韱栴}出在別的地方。
?。±戏蚴秦i,問題2是由問題1引起的!filesize()獲取的不對,自然匹配不上了!第二種方法匹配上,是在解決問題1之后?。?

3,瀏覽器中審查元素得到的報價圖片下載地址,為何與curl得到的下載地址不同。
可能……最后答案依然是:我是豬。
因為URI對象為:attachment.php?aid=Mzk3MTB8YTg5ZTYyNTJ8MTMyNjcyNDEwMXw5NWYydC9aOUE0a05EVm9ydlErSFBRamZJNWJQL1NHdWJLK3ZraU9GTDZYdnBUdw%3D%3D&nothumb=yes
aid是個什么呢?很可能是個與session有關(guān)的東東,變一變也很正常的嘛。后來抓看起來像靜態(tài)路徑的東東就沒問題了。

以上三個故事中包含兩個悲劇,這就是PHP初學(xué)者必犯的低級錯誤。

相關(guān)文章

最新評論