RSS

首日实寄封交流

0 Comments | This entry was posted on Sep 08 2011

本人收藏一系列JT的首日实寄封,如果有兴趣的宁波朋友,可联系和交流,13738435163 QQ:373266732 张先生.
如果有需要也可以交换,转让,买卖

css 各版本之间的定位问题

2 Comments | This entry was posted on Mar 16 2012

 background-color: #000;
 display:none;
 width: 100%;
 height: 100%;
 left:0;
 top:0;/*FF IE7*/
 filter:alpha(opacity=50);/*IE*/
 opacity:0.5;/*FF*/
 z-index:1;
 position:fixed!important;/*FF IE7*/
 _position:absolute;/*IE6*/
_top: expression(eval(document.compatMode &&  document.compatMode==’CSS1Compat’) ?  documentElement.scrollTop + (document.documentElement.clientHeight-this.offsetHeight)/2 :/*IE6*/
 document.body.scrollTop + (document.body.clientHeight - this.clientHeight)/2);/* www.codefans.net IE5 IE5.5*/

首日实寄封交流

0 Comments | This entry was posted on Sep 08 2011

本人收藏一系列JT的首日实寄封,如果有兴趣的宁波朋友,可联系和交流,13738435163 QQ:373266732 张先生.
如果有需要也可以交换,转让,买卖

如何去掉ecshop底部的版权信息

16 Comments | This entry was posted on Nov 14 2011

最近在研究ecshop,这个网上商城程序的确不错。。

1、除顶部标题栏”Powered by Ecshop”信息,就是在ie浏览器中显示的版权
   找到Ecshop根目录下面的includes/lib_main.php文件,用txt打开,找到如下代码:
   /* 初始化“页面标题”和“当前位置” */
       $page_title = $GLOBALS['_CFG']['shop_title'] . ‘ - ‘ . ‘Powered by ECShop’;
       $ur_here     = ‘<a href=”.” mce_href=”.”>’ . $GLOBALS['_LANG']['home'] . ‘</a>’;
   将版权信息换成你想要的,或者干脆直接删掉,直至剩下如下代码:
   $page_title = $GLOBALS['_CFG']['shop_title'];
2、修改底部”Powered by Ecshop 2.7″
       找到Ecshop根目录下面的/themes/当前模板名/library/page_footer.lbi文件,用txt打开,找到如下代码:
   insert name=’query_info’}<br />
       <a href=”http://www.ecshop.com” target=”_blank” style=”font-size:10px”>Powered by <strong><span style=”color: #3366FF”>ECShop</span> <span   style=”color: #FF9966″>{$ecs_version}</span></strong></a><br />
   将网址和版权换成你想要的

   此外2.7版本,去除底部的版权,会出现版权信息随意跳转的现象,为了防止这种现象需要做如下操作:
用txt打开js目录里的common.js,在txt里点看右下角,直到显示的是Ln244.然后从这里开始删掉到336行那里。删除后保存,刚开始,我是没注意到下面那个乱飞的版权,现在终于研究明白 了!
找到文件js/common.js
找到第244行:
函数如下:
onload = function()
{
var link_arr = document.getElementsByTagName(String.fromCharCode(65));
var link_str;
var link_text;
var regg, cc;
var rmd, rmd_s, rmd_e, link_eorr = 0;
var e = new Array(97, 98, 99,
                   100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
                   110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
                   120, 121, 122
                   );

   try
   {
for(var i = 0; i < link_arr.length; i++)
{
   link_str = link_arr.href;
   if (link_str.indexOf(String.fromCharCode(e[22], 119, 119, 46, e[4], 99, e[18], e[7], e[14],
                                           e[15], 46, 99, 111, e[12])) != -1)
   {
       if ((link_text = link_arr.innerText) == undefined)
       {
         throw “noIE”;
       }
       regg = new RegExp(String.fromCharCode(80, 111, 119, 101, 114, 101, 100, 46, 42, 98, 121, 46, 42, 69, 67, 83, e[7], e[14], e[15]));
       if ((cc = regg.exec(link_text)) != null)
       {
       if (link_arr.offsetHeight == 0)
       {
         break;
       }
       link_eorr = 1;
       break;
       }
   }
   else
   {
       link_eorr = link_eorr ? 0 : link_eorr;
       continue;
   }
}
   } // IE
   catch(exc)
   {
for(var i = 0; i < link_arr.length; i++)
{
   link_str = link_arr.href;
   if (link_str.indexOf(String.fromCharCode(e[22], 119, 119, 46, e[4], 99, 115, 104, e[14],
                                               e[15], 46, 99, 111, e[12])) != -1)
   {
       link_text = link_arr.textContent;
       regg = new RegExp(String.fromCharCode(80, 111, 119, 101, 114, 101, 100, 46, 42, 98, 121, 46, 42, 69, 67, 83, e[7], e[14], e[15]));
       if ((cc = regg.exec(link_text)) != null)
       {
       if (link_arr.offsetHeight == 0)
       {
         break;
       }
       link_eorr = 1;
       break;
       }
   }
   else
   {
       link_eorr = link_eorr ? 0 : link_eorr;
       continue;
   }
}
   } // FF

   try
   {
rmd = Math.random();
rmd_s = Math.floor(rmd * 10);
if (link_eorr != 1)
{
   rmd_e = i - rmd_s;
   link_arr[rmd_e].href = String.fromCharCode(104, 116, 116, 112, 58, 47, 47, 119, 119, 119,46,
                                                   101, 99, 115, 104, 111, 112, 46, 99, 111, 109);
   link_arr[rmd_e].innerHTML = String.fromCharCode(
                                     80, 111, 119, 101, 114, 101, 100,38, 110, 98, 115, 112, 59, 98,
                                     121,38, 110, 98, 115, 112, 59,60, 115, 116, 114, 111, 110, 103,
                                     62, 60,115, 112, 97, 110, 32, 115, 116, 121,108,101, 61, 34, 99,
                                     111, 108, 111, 114, 58, 32, 35, 51, 51, 54, 54, 70, 70, 34, 62,
                                     69, 67, 83, 104, 111, 112, 60, 47, 115, 112, 97, 110, 62,60, 47,
                                     115, 116, 114, 111, 110, 103, 62);
}
   }
   catch(ex)
   {
   }
}
将以上代码完全删除,可以防止乱飞的版权随即产生乱跳动

3、此外还要修改下面文件
找到includes文件夹的 cls_ecshop.php
再找以下代码,以下代码我修改过,你修改成自己的文字就可以了,如果你用了ecshop助手的话,建议不要改这里,改了会用不到ecshop助手
define(’APPNAME’, ‘xxxx.Cn’);
define(’VERSION’, ‘v2.0′);
define(’RELEASE’, ‘20090720′);
4、最后最好修改一个地方
找到Ecshop根目录下面languages/zh_cn/common.php
找到如下代码:
$_LANG['p_y']['link_start'] = ‘<a href=”http://www.XXX.cn” target=”_blank” style=” font-family:Verdana; font-size:11px;”>’;
$_LANG['p_y']['link_p'] = ‘Powe’;
$_LANG['p_y']['link_r'] = ‘red ‘;
$_LANG['p_y']['link_b'] = ‘by ‘;
$_LANG['p_y']['main_start'] = ‘<strong><span style=”color: #3366FF”>’;
$_LANG['p_y']['main_e'] = ‘J’;
$_LANG['p_y']['main_c'] = ‘oNeLy’;
$_LANG['p_y']['main_p'] = ‘.Cn</span> ‘;
$_LANG['p_y']['v_s'] = ‘<span style=”color: #FF9966″>’;
$_LANG['p_y']['v'] = VERSION;
$_LANG['p_y']['link_end'] = ‘</span></strong></a> ‘;

最后要说,这是学习用,请尊重ecshop版权,不提倡随意修改。

2011-10-05 宁波儿童公园

1 Comment | This entry was posted on Oct 14 2011

高亮显示文件代码 highlight_file($filename);

0 Comments | This entry was posted on Aug 03 2011

global $htmlroot;
$htmlroot=”d:/temp”; //”/web/html”是apache的文档根目录,用户可以根据自己的配置修改
if ($rootpath==”") {$rootpath=$htmlroot;}
function filelist($pathname){ //遍历所有的文件和目录,$pathnam为起始目录,$searchs为搜索关键字
global $htmlroot;
if (eregi(”[/][.][.]$”,$pathname)) {
$temp=split(”[/]“,$pathname);
$pathname=”";
for ($tt=1;$tt<(count($temp)-2);$tt++)
$pathname=$pathname."/".$temp[$tt];
}
echo $pathname."
“;
$handle=opendir($pathname); //打开目录
if (@chdir($pathname)) { //cd 进入目录,若无权限则不进入
$file = readdir($handle); //读出所有当前目录下的元素名,第一次读出为‘。’,指上层目录
while ($file = readdir($handle)) { //若有元素就进行以下处理
$fname=$pathname.”/”.$file; //将元素名与当前目录名结合组成完整的文件名,并赋值给$fname
if ((is_file($file)) and (ereg(”\.php[3]{0,1}$”,$file) or ereg(”\.htm[l]{0,1}$”,$file))) //判断是否为文件并且是否以.php和.php3结尾
{
$temppp=split($htmlroot,$fname);
echo ““.$file.”   ”.filesize($file).”bytes      源文件
“;
//findinfile($fname,$searchs); //调用findinfile函数
}
elseif (is_dir($fname)) { //判断是否为目录
linkres($fname);
//filelist($fname,$searchs);} //递归调用filelist函数
}
}
chdir(”..”); //结束当前递归,返回上层
}
closedir($handle); //关闭当前目录读取
}
//
function linkres($filename){
$tpath=split(”/web/html”,$filename);
$turepath=$tpath[1];
ereg(”[^\\\/\~]{0,}$”,$filename,$res);
//$ft=filetitle($filename);
//if ($ft==”") $ft=”无标题”;
echo ““.$res[0].”   <dir>
“;
}
//
filelist($rootpath);

注册会员列表 - 通过ODBC访问数据库演示

1 Comment | This entry was posted on Aug 03 2011

//连接到ODBC数据库
$myconn=odbc_connect("fengfeng","sa","123");
$strSql="select * from reguser";
/*执行查询*/
$result=odbc_do($myconn,$strSql);
//Boolean odbc_fetch_row(integer result,integer row)
while(odbc_fetch_row($result))//通过循环读取数据内容
{
?>

}
//关闭对数据库的连接
odbc_close("$myconn");
?>

ID 姓名 性别 年龄 联系电话 电子邮件 家庭住址

$myconn=odbc_connect(”fengfeng”,”sa”,”123″);
//将用户填写信息添加到数据库
$strSql=”insert into reguser(userid,sex,age,tel,email,address)
values(’$userid’,'$sex’,$age,’$tel’,'$email’,'$address’)”;
$result=odbc_do($myconn,$strSql);
//关闭对数据库的连接
odbc_close(”$myconn”);
echo “您已经成功注册成我们的会员!”;

检测操作系统和浏览器类型

0 Comments | This entry was posted on Aug 03 2011

/*
浏览器类型、版本
*/

if(ereg( 'MSIE ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version))
{
$browser_Ver=$log_version[1];
$browserType='IE';
}
elseif(ereg( 'Opera ([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version))
{
$browser_Ver=$log_version[1];
$browserType='OPERA';
}
elseif(ereg( 'Mozilla/([0-9].[0-9]{1,2})',$HTTP_USER_AGENT,$log_version))
{
$browser_Ver=$log_version[1];
$browserType='MOZILLA';
}
else
{
$browser_Ver=0;
$browserType='OTHER';
}
echo "

浏览器类型:$browserType $browser_Ver“;
/*
操作系统类型
*/
if(strpos($HTTP_USER_AGENT,’Windows 9′))
{
$osType=”Windows 9X”;
}
elseif(strpos($HTTP_USER_AGENT,’Windows NT’))
{
$osType=”Windows NT”;
}
elseif(strpos($HTTP_USER_AGENT,’Windows 2000′))
{
$osType=”Windows 2000″;
}
elseif(strpos($HTTP_USER_AGENT,’Mac’))
{
$osType=”Mac”;
}
elseif(strpos($HTTP_USER_AGENT,’Unix’))
{
$osType=”Unix”;
}
elseif(strpos($HTTP_USER_AGENT,’Linux’))
{
$osType=”Linux”;
}else $osType=”Others”;

echo “

操作系统类型:$osType“;
echo “

IP地址:$REMOTE_ADDR“;
?>

for 循环的高级应用

0 Comments | This entry was posted on Aug 03 2011

/*
** 打印必要的说明文字
*/
print("距离星期一还有几天?\n”);
print(”

    \n”);

    for($currentDate = date(”U”);//从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 //定义$currentDate时间格式

    date(”l”, $currentDate) != “Monday”; //判断是不是当前系统时间是Monday
    $currentDate += (60 * 60 * 24)) //当前时间加上1天
    {
    /*
    ** 打印时间名称
    */
    print(”

  1. ” . date(”l”, $currentDate) . “\n”);
    }

    print(”

\n”);
?>
// HTML文档开始
print("\n”);
// 编写头文件
print(”\n”);
print(”“);<br /> print(”查看句中单词的个数”);<br /> print(”\n”);
print(”\n”);
// 编写HTML主体
print(”\n”);
/*
** 如果得到提交的语句则执行下面的语句
*/
if(isset($sentence))
{
print(”得到的语句:“);
print(”$sentence

\n”);
$separators = ” “;
//得到每个单词

for($token = strtok($sentence, $separators);
$token;
$token = strtok($separators))
{
// 计算每个单词
$word_count[$token]++;
$total++;
}
//分成数组
arsort($word_count);
print(”找到$total 个单词\n”);
print(”

    \n”);
    while(list($key, $value) = each($word_count))
    {
    print(”
  • $key ($value)\n”);
    }
    print(”
\n”);
}

print(”

\n”);
print(”\n”);
print(”\n”);
print(”
\n”);
print(”\n”);
// End HTML document
print(”\n”);
?>

CSS Hack 解決IE6、IE7、IE8、Firefox的瀏覽器相容性問題!

0 Comments | This entry was posted on Aug 03 2011

每次調CSS最令人頭痛的就是瀏覽器校正問題,因為每個瀏覽器對CSS的解釋都不太一樣,Firefox本身算是比較照規矩來,處理上比較簡單,但 是遇到微軟的IE系列頭就大了,雖然都是IE,但是IE6、IE7、IE8各版本對CSS的解釋又不一樣,就算你本身已經在IE6調整好,但是在IE7看 起來又是不一樣,這時我們就得來對各個瀏覽器設定不同的數值來解決版面移位的問題
網路上有非常多關於CSS Hack的教學文章,當然處理方法也有很多種,接下來要跟大家說明的是屬於比較簡單的方法,但是以下的校正確無法通過W3C檢測,雖然無法通過檢測,但是針對各個瀏覽器校正確是有效的喔!
目前瀏覽器大宗還是屬於IE6的天下,這原因主要是因為XP本身內建IE6,而且很多使用者很喜歡重灌XP,因此IE6仍占走了大半的瀏覽器天下, 不過隨著Windows7的出現,倒是有非常大的機會解決過氣的IE6,因為Windows7本身是內建IE8,微軟的IE8對CSS的解釋已經越來越標 準,當然標準程度仍是不及Firefox。
另外,如果要處理IE各版本瀏覽器的相容性問題,那一定要有各版本的IE瀏覽器可以瀏覽,但是微軟作業系統內並沒有讓多版本的IE共存,為了讓自己電腦內存在多種版本的IE瀏覽器,那就趕快下載IETester來使用吧!另外,也別忘記下載Firefox來修正網頁CSS喔!
——————————–我是分隔線——————————–
區別IE和Firefox
【辨識符號】:「\9」
【範例練習】:
#tip {
background:blue; /*Firefox 背景變藍色*/
background:red \9; /*IE6、IE7、IE8背景變紅色*/
}
【說明】:因為IE瀏覽器看得懂「\9」,但是非IE的瀏覽器一律看不懂,因此就可以用這個語法來區分IE和 Firefox(非IE瀏覽器,像是Opera、Google Chrome、Safari等),因此以上CSS範例中,非IE瀏覽器是顯示藍色背景,IE系列瀏覽器是顯示紅色背景。
——————————–我是分隔線——————————–
區別IE6、IE7、IE8、Firefox
【辨識符號】:「\9」、「*」、「_」
【範例練習】:
#tip {
background:blue; /*Firefox 背景變藍色*/
background:red \9; /*IE8 背景變紅色*/
*background:black; /*IE7 背景變黑色*/
_background:orange; /*IE6 背景變橘色*/
}
【說明】:因為IE系列瀏覽器可讀「\9」,而IE6和IE7可讀「*」(米字號),另外IE6可辨識「_」 (底線),因此可以依照順序寫下來,就會讓瀏覽器正確的讀取到自己看得懂得CSS語法,所以就可以有效區分IE各版本和非IE瀏覽器(像是 Firefox、Opera、Google Chrome、Safari等)。
——————————–我是分隔線——————————–
區別IE6、IE7、Firefox (方法 1)
【辨識符號】:「*」、「_」
【範例練習】:
#tip {
background:blue; /*Firefox背景變藍色*/
*background:black; /*IE7 背景變黑色*/
_background:orange; /*IE6 背景變橘色*/
}
【說明】:IE7和IE6可讀「*」(米字號),IE6又可以讀「_」(底線),但是IE7卻無法讀取「_」,至於Firefox(非IE瀏覽器)則完全無法辨識「*」和「_」,因此就可以透過這樣的差異性來區分IE6、IE7、Firefox,
——————————–我是分隔線——————————–
區別IE6、IE7、Firefox (方法 2)
【辨識符號】:「*」、「!important」
【範例練習】:
#tip {
background:blue; /*Firefox 背景變藍色*/
*background:green !important; /*IE7 背景變綠色*/
*background:orange; /*IE6 背景變橘色*/
}
【說明】:IE7可以辨識「*」和「!important」,但是IE6只可以辨識「*」,卻無法辨識「!important」,至於Firefox可以讀取「!important」但不能辨識「*」因此可以透過這樣的差異來有效區隔IE6、IE7、Firefox。
區別IE7、Firefox
【辨識符號】:「*」、「!important」
【範例練習】:
#tip {
background:blue; /*Firefox 背景變藍色*/
*background:green !important; /*IE7 背景變綠色*/
}
【說明】:因為Firefox可以辨識「!important」但卻無法辨識「*」,而IE7則可以同時看懂「*」、「!important」,因此可以兩個辨識符號來區隔IE7和Firefox。
——————————–我是分隔線——————————–
區別IE6、IE7 (方法 1)
【辨識符號】:「*」、「_」
【範例練習】:
#tip {
*background:black; /*IE7 背景變黑色*/
_background:orange; /*IE6 背景變橘色*/
}
【說明】:IE7和IE6都可以辨識「*」(米字號),但IE6可以辨識「_」(底線),IE7卻無法辨識,透過IE7無法讀取「_」的特性就能輕鬆區隔IE6和IE7之間的差異。
區別IE6、IE7 (方法 2)
【辨識符號】:「!important」
【範例練習】:
#tip {
background:black !important; /*IE7 背景變黑色*/
background:orange; /*IE6 背景變橘色*/
}
【說明】:因為IE7可讀取「!important;」但IE6卻不行,而CSS的讀取步驟是從上到下,因此IE6讀取時因無法辨識「!important」而直接跳到下一行讀取CSS,所以背景色會呈現橘色。
——————————–我是分隔線——————————–
區別IE6、Firefox
【辨識符號】:「_」
【範例練習】:
#tip {
background:black; /*Firefox 背景變黑色*/
_background:orange; /*IE6 背景變橘色*/
}
【說明】:因為IE6可以辨識「_」(底線),但是Firefox卻不行,因此可以透過這樣的差異來區隔Firefox和IE6,有效達成CSS hack。
——————————–我是分隔線——————————–
關於IE6、IE7、IE8、Firefox之間的CSS Hack大概是以上那樣,如果有疏漏或是有錯誤還煩請大家指證一下囉!這些CSS Hack是我目前看過比較簡單的處理方式,當然如果你不會很在意CSS是否通過W3C的驗證,你只會在意每個用戶在不同的瀏覽器下閱讀是否可以正常的話, 其實以上CSS Hack對你來說是非常好用的,因為這些CSS Hack如果善加利用確實可以正確的解決瀏覽器相容性問題。
以上的CSS Hack參照了以下幾篇文章所整理出來的,感謝以下文章的詳細說明。
1, !important (不是很推荐,用下面的一种感觉最安全)
随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)
代码:
#wrapper {
width: 100px!important; /* IE7+FF */
width: 80px; /* IE6 */
}
2, IE6/IE77对FireFox
*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.
代码:
#wrapper { width: 120px; } /* FireFox */
*html #wrapper { width: 80px;} /* ie6 fixed */
*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */

注意:
*+html 对IE7的兼容 必须保证HTML顶部有如下声明:
代码:

< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >

PHP 中检查库或函数是否可用的方法

0 Comments | This entry was posted on Jul 11 2011

 随着版本的升高,PHP的功能也越来越完善,可用的扩展库和函数也越来越多,因此,我们写程序时也要考虑版本的兼容问题,同时还要考虑服务器(特别是虚拟主机)是否安装了扩展库。

  本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。

  1. 获取所有可用的模块 – get_loaded_extensions

  该函数返回所有已经加载的(可用的)模块。

  用法:

 

  1. <?php   
  2. print_r(get_loaded_extensions());   
  3. ?> 

  2.获取指定模块的可用函数 – get_extension_funcs

  该函数返回指定模块所有可用的函数。

  传入的参数(模块名称)必须是小写

  用法:

 

  1. <?php    
  2. print_r(get_extension_funcs("gd"));   
  3. ?> 

  3. 获取所有已经定义的函数 – get_defined_functions

  该函数返回所有已经定义的函数,包括内置函数和用户自定义函数。

  用法:

 

  1. <?php    
  2. function myrow($id$data)    
  3. {    
  4.     return "<tr><th>$id</th><td>$data</td></tr>\n";   
  5. }    
  6.     
  7. $arr = get_defined_functions();   
  8.     
  9. print_r($arr);   
  10. ?>  

  输出:

 

  1. Array   
  2. (   
  3.     [internal] => Array   
  4.         (   
  5.             [0] => zend_version   
  6.             [1] => func_num_args   
  7.             [2] => func_get_arg   
  8.             [3] => func_get_args   
  9.             [4] => strlen   
  10.             [5] => strcmp   
  11.             [6] => strncmp   
  12.             ...   
  13.             [750] => bcscale   
  14.             [751] => bccomp   
  15.         )   
  16.     
  17.     [user] => Array   
  18.         (   
  19.             [0] => myrow   
  20.         )   
  21.     
  22. )  

  其中 $arr["internal"] 是内置函数, $arr["user"] 是用户自定义函数。

  4. 检查指定函数是否存在 – function_exists

  该函数返回指定函数是否已经定义。

  用法:

 

  1. <?php    
  2. if (function_exists('imap_open')) {    
  3.     echo "IMAP functions are available.<br />\n";   
  4. else {    
  5.     echo "IMAP functions are not available.<br />\n";   
  6. }    
  7. ?>