夕口技術錄
專業上的小常識,備而用之~
Category Archives: PHP
[eregi] – 不知算不算 php 的 bug
2010/08/25
Posted by 於 以下是在 pcname scan 程式中,
使用 nmblookup 碰到中文字時,
會出現被轉為奇怪字元的情形,
本會用 eregi 去判斷是否有此情況出現,
但…卻發現會出現以下情況 ???
也不知算不算 php 的 bug …
後來使用 stripos($pcname,"….") !== false 的方式來解決
if(eregi(“….“,"ACER3703″))
echo “in1″;
else
echo “out1″;
if(eregi(“..e“,"ACER3703″))
echo “in2″;
else
echo “out2″;
if(eregi(“__.","ACER3703″))
echo “in3″;
else
echo “out3″;
if(eregi(“..M","ACER3703″))
echo “in4″;
else
echo “out4″;
result : in1 in2 out3 out4
[jpgraph] – 中文字型及預設路徑
2010/01/06
Posted by 於 中文字型設定位置
#vi jpg-config.inc
DEFINE(‘CHINESE_TTF_FONT’,’bkai00mp.ttf’);
預設路徑
# vi jpgraph.php
DEFINE(‘TTF_DIR’,’/usr/share/fonts/zh_TW/TrueType/’);
[Smarty] – how to use 『break or continue』 ?
2009/11/06
Posted by 於 Smarty 樣版引擎,
如何在 section 迴圈要使用如 PHP 中所使用的 break 或 continue 呢 ?
方法還是得利用 Smarty 中 PHP 方法…
{section name=loop loop=$record}
{if $record[loop].id == “xx"}
{php}break;{/php}
{php}continue;{/php}
{/if}
{/section}
[Win] – 網路命令
2009/07/11
Posted by 於 Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,前段时间Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答。 閱讀全文
[Win] – 網路命令
2009/07/11
Posted by 於 Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接收)数据报。根据返回的信息,你就可以推断TCP/IP参数是否设置得正确以及运行是否正常。需要注意的是:成功地与另一台主机进行一次或两次数据报交换并不表示TCP/IP配置就是正确的,你必须执行大量的本地主机与远程主机的数据报交换,才能确信TCP/IP的正确性。
简单的说,Ping就是一个测试程序,如果Ping运行正确,你大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小了问题的范围。但由于可以自定义所发数据报的大小及无休止的高速发送,Ping也被某些别有用心的人作为DDOS(拒绝服务攻击)的工具,前段时间Yahoo就是被黑客利用数百台可以高速接入互联网的电脑连续发送大量Ping数据报而瘫痪的。
按照缺省设置,Windows上运行的Ping命令发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,你应能得到4个回送应答。 閱讀全文
[PHP] – 字串移除空白
2009/07/10
Posted by 於 <?php
$str = " This line contains\tliberal \r\n use of whitespace.\n\n";// 移除前後空白字
$str = trim($str);// 移除重覆的空白
$str = preg_replace(‘/\s(?=\s)/’, “, $str);// 移除非空白的間距變成一般的空白
$str = preg_replace(‘/[\n\r\t]/’, ‘ ‘, $str);// Echo out: ‘This line contains liberal use of whitespace.’
echo “<pre>{$str}</pre>";
?>
[PHP][system][exec] – include 插入 exit 是否會影響原程式?
2009/06/15
Posted by 於 #vi aaa
#!/usr/local/xxx/bin/php -q
<?php
echo system(“./bbb");
echo “<—“;
?>
#!/usr/local/netsecure/bin/php -q
<?php
exit;
echo “–>";
?>
Result : <—
也就是說,
雖 aaa 所 include的 bbb 程式中有插入中止符號 exit
並不會影響到 aaa 原本的程式運作 ;
因 system 只會傳回 『Returns the last line of the command output on success, and FALSE on failure. 』
當然如使用 exec 也是不會影響到 aaa 原本的程式運作
[PHP][if-else] – 測試三元運算符與 if else 的運算速度
2009/04/18
Posted by 於 <?php
/**
* 以微秒为单位
* @return float
*/
function getMicrotime()
{
list($usec, $sec) = explode(“ “, microtime());
return ((float)$usec + (float)$sec);
}
$fStartTime = getMicrotime();
for ($i=0; $i<100000; $i++){
$a = ‘b‘;
if ($a==‘b‘) {
$a=‘c‘;
}else{
$a=‘d‘;
}
}
$fEndTime = getMicrotime();
print $fEndTime – $fStartTime;
print ‘<br>‘;
$fStartTime = getMicrotime();
for ($i=0; $i<100000; $i++){
$a = ‘b‘;
$a = ($a==‘b‘) ? ‘c‘ : ‘d‘;
}
$fEndTime = getMicrotime();
print $fEndTime – $fStartTime;
?>
结果如下
0.133780002594 <- if else
0.106215000153 <- 三元
三元運算符比 if (){}else{} 快一些
[Apache][shell] – Apache 每天自動重啟程式
2009/04/07
Posted by 於
/usr/local/server/bin/shell_process_restart
#!/usr/local/server/bin/php -q
<?php
$ns_path = "/usr/local/server/";
//SIKO-> step.1 stop
$apache_process_stop = escapeshellcmd($ns_path."bin/apachectl stop");
$apache_process_test = escapeshellcmd("pgrep httpd");
do{
exec($apache_process_stop);
system($apache_process_test,$ptset);
$i++;
}
while($ptset == 0 && $i < 10000);//SIKO-> step.2 start
$apache_process_start = escapeshellcmd($ns_path."bin/apachectl start");
do{
exec($apache_process_start);
system($apache_process_test,$ptset);
$j++;
}
while($ptset == 1 && $j < 10000);?>
[crontab]
00 01 * * * /usr/local/server/bin/lockrun --lockfile=/usr/local/server/log/shell_process_restart.lock -- /usr/local/server/bin/shell_process_restart > /dev/null 2>&1
[PHP][&、~] – 位元運算子(bitwise operator)
2009/03/22
Posted by 於 “位元運算子" 大家平常是非常用的到東西,
但今天我才知道它的另外的用法,
下面就來舉個例吧!!!
echo(5&6); //結果為4
?為何呢…
因位元運算子是提供二進位的位元運算,計算過和如下…
運算子 範例 運算過程 說明
& 11&13 11(1011) & 13(1101) = 9(1001) 將每個位元做 and 運算
| 11|13 11(1011) | 13(1101) = 15(1111) 將每個位元做 or運算
^ 11^13 11(1011) ^ 13(1101) = 6(0110) 將每個位元做 xor 運算
>> 11>>2 11(1011) >> 2 = 2(0010) 將位元向右移動,例右移兩位元
<< 11<<2 11(001011) << 2 = 44(101100) 將位元向左移動,例左移兩位元
~ 11~ ~11 = -12 將所有位元做反相運算,相當於將十進位數值乘一個負號再減1
近期迴響