Archive for the 'web' Category

php模板显示浏览器眉头有空行解决方法

十一 04 2009 Published by under php,web

最近在写php时,莫名其妙的浏览器头多出一行空行,在网上搜索一下,大致都是把文件保存为非BOM的UTF-8格式,在本地也解决了,但是上传到服务器依然有空行,搞了一个上午,都快崩溃了,最后决定自己想办法解决,经过几个小时的摸索终于有了完美解决方法了。

运用php显示缓冲区显示原理,成功去掉

在php的头上加一行ob_start(); 然后再模板显示前加个ob_end_clean(); 在模板显示后加个ob_end_flush();

这样问题就解决了,现在给出整体结构实例代码:

<?php

ob_start();

//此处为php逻辑操作

ob_end_clean();

//此处为php模板显示

ob_end_flush();

?>

No responses yet

oscommerce 3.0 人民币添加

九 17 2009 Published by under web

oscommerce 3.0 安装后是没有人民币的,在oscommerce 3.0 添加货币是很简单的,在后台’网店主要设置管理’->’货币管理’中点击’插入’按钮,填入如下选项值:

名称:人民币

代码:CNY

左侧符号:¥

右侧符号:元

小数位数:2

币值:6.83056021

填好后点击”保存”按钮,如果要设置为默认货币,点击默认.

oscommerce 支持网络货币汇率更新,点击眉头上的”更新货币汇率”按钮,选择XE (http://www.xe.com)更新,以为第一个会报错,第二个比较正常,这样你的汇率就是最新的了.现在人民币就添加成功了.呵呵.欢迎查看本人的oscommerce 3.0中文和添加模板.

No responses yet

oscommerce 3.0 中文及模板定制

九 17 2009 Published by under web

oscommerce 3.0 alpha 5已经释放好几个月了,最近一直搞zen-cart开发国外电子商务网站,已经习惯了zen-cart模式,oscommerce 2.2一直没有去学习,因为在我进入电子商务的时候我的前辈推荐我使用zen-cart,zen-cart是oscommerce的重构版本,比oscommerce好用.后来一直没有看,包括我在网上看到zen-cart和oscommerce的比较评价都是zen-cart好于oscommerce,最近在无意中发现oscommerce 3.0 alpha 5,于是随便看看,发现现在的oscommerce 3.0的文件结构都重构过了.个人觉得文件结构的安排比zen-cart好.并且oscommerce 3.0支持面向对象编程.也许面向对象编程成为php发展的趋势.

oscommerce 3.0的文档几乎就没有什么,在网上聊聊无几,很多记录和这个oscommerce 3.0根本毫无关系.

下面介绍怎么添加oscommerce 3.0的模板吧.

首先我们到www.oscommerce.com的官网下载最新的3.0 alpha 5,下载地址

然后下载中文语言包,下载地址

在apache+php环境中部署好,然后安装.我想这些大家都明白.不明白就去网上查找一下相关资料

然后把下载好的中文语言包解压覆盖源文件的相关目录,这是进入后台就会有中文的选择了.

接下来就是模板的添加了,这个和zen-cart不是一样,但是很相似.就是在templates目录里添加要增加的模板目录和模板首页例如我们要添加一个test模板,现在在templates目录里建立一个test目录还有一个test.php文件,这个test.php文件可以复制default.php然后修改成自己想要的样子.接下来也是最关键的一步就是在adminincludestemplates中增加一个test.php文件.文件复制这个目录下的default.php文件然后修改几个地方:类名中default替换成test有两处,一处15行处的class osC_Template_test ,还有一处是18行$_code = ‘test’.17行的$_title = ‘osCommerce test Template’修不修改问题不是太大,但是最好修改,这样有助于阅读分别.接下来进入后台查看templates中多出一个模板选项(“osCommerce test Template”),这样一个模板就建立成功了.

模板建立好了,接下来就是货币本地化,欢迎查看oscommerce 3.0添加人民币.

One response so far

SyntaxHighlighter brush的文本对应表

九 15 2009 Published by under web

Brush name Brush aliases File name
ActionScript3 as3, actionscript3 shBrushAS3.js
Bash/shell bash, shell shBrushBash.js
C# c-sharp, csharp shBrushCSharp.js
C++ cpp, c shBrushCpp.js
CSS css shBrushCss.js
Delphi delphi, pas, pascal shBrushDelphi.js
Diff diff, patch shBrushDiff.js
Groovy groovy shBrushGroovy.js
JavaScript js, jscript, javascript shBrushJScript.js
Java java shBrushJava.js
JavaFX jfx, javafx shBrushJavaFX.js
Perl perl, pl shBrushPerl.js
PHP php shBrushPhp.js
Plain Text plain, text shBrushPlain.js
PowerShell ps, powershell shBrushPowerShell.js
Python py, python shBrushPython.js
Ruby rails, ror, ruby shBrushRuby.js
Scala scala shBrushScala.js
SQL sql shBrushSql.js
Visual Basic vb, vbnet shBrushVb.js
XML xml, xhtml, xslt, html, xhtml shBrushXml.js

One response so far

CSS中背景图片定位方法

九 15 2009 Published by under web

图片定位可以使用光影魔术手,和Photoshop来查看.
在CSS中,背景图片的定位方位有3种:

1)关键字:background-position: top right;

2)像素:background-position: 0px 0px;

3)百分比:background-position: 0% 0%;

上面这三句语句,都将图片定位在背景的左上角,表面上看效果是一样的,实际上第三种定位机制与前两种完全不同。

前两种定位,都是将背景图片左上角的原点,放置在规定的位置。请看下面这张图,规定的位置是“20px 10px”和”60px 50px”,都是图片的原点在那个位置上,图中用X表示。

bg2008050701

但是第三种定位,也就是百分比定位,不是这样。它的放置规则是,图片本身(x%,y%)的那个点,与背景区域的(x%,y%)的那个点重合。比如,如果放置位置是“20% 10%”,实际结果如下图,可以看到这个点是在图片本身的“20% 10%”的位置上。

bg2008050702

下面是一个有趣的例子。

背景图片是四个边长为100px的方块叠在一起:

bg2008050703

请问怎样才能将其横过来:

bg2008050704

答案是,在网页中先设置四个div区域:

    <div class="box1">
    </div>

    <div class="box2"">
    </div>

    <div class="box3">
    </div>

    <div class="box4">
    </div>

然后,这样编写CSS:

.box1, .box2, .box3, .box4 {
float:left;
width:100px;
height:100px;
position:relative;
background: #F3F2E2 url(1234.png) no-repeat;
}

.box1 {
background-position:0% 0%;
}

.box2 {
background-position:0% 33.33333%;
}

.box3 {
background-position:0% 66.66666%;
}

.box4 {
background-position:0% 100%;
}

最后的效果。可以看到第二和第三个方块的设置,并不是一般想象中的“0% 25%”和“0% 75%”。

不过说实话,这个例子用像素设置法更容易一些。使用百分比设置的主要优势在于,当页面缩放的时候,背景图片也会跟着一起缩放

No responses yet

域名泛解析

九 10 2009 Published by under web

现在我们要在一个空间放置多个二级域名,废话少说,直接进入主题.
例子:

1、http://blog.vouov.com/
2、http://music.google.cn/

以上这种形式的域名具体是怎么实现的呢?就PHP程序中涉及到得简单说一下
一、要做一个域名泛解析,就是说将 *.domain.com 解析到你的空间[服务器]上
二、要做一个服务器的泛解析,就apache来讲,要在apache的配置文件http.conf(具体的环境具体的文件名,自己注意下)中(直接添加到该配置文件的最后即可)

<VirtualHost *:80>
ServerAdmin  yuminglong@yeah.net
DocumentRoot /www/vouov
ServerName vouov.com
ServerAlias *.vouov.com
</VirtualHost>

三、rewrite 重写路径

RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-z0-9-]+.vouov.com$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([a-z0-9-]+).vouov.com/?$ /rewrite.php?u=$1 [L]

#含义是 例如test.vouov.com,将隐式打开的是www.vouov.com/rewrite.php?u=test这个页面
#注意:将这些放到一个.htaccess文件,然后放到网站根目录即可
#必须保证apache配置文件中的重写应用要打开,一般的空间供应商已默认打开这个模块了.如果没有打开按以下方法打开
1、去掉LoadModule rewrite_module modules/mod_rewrite.so前面出现的#号,即去掉注释
2、AllowOverride none改为AllowOverride All,在http.conf文件中搜索即可找到,修改即可
#rewrite更多规则可以参考apache文档

除了应用重写规则,我们也可以在PHP程序中来处理这些事情,

//二级域名
if(!isset($_GET['do']) &amp;&amp; $_SCONFIG['allowdomain']) {
$hostarr = explode(’.’, $_SERVER['HTTP_HOST']);
$domainrootarr = explode(’.’, $_SCONFIG['domainroot']);
if(count($hostarr) &gt; 2 &amp;&amp; count($hostarr) &gt; count($domainrootarr) &amp;&amp; $hostarr[0] != ‘www’ &amp;&amp; !isholddomain($hostarr[0])) {
showmessage(’enter_the_space’, $_SCONFIG['siteallurl'].’space.php?domain=’.$hostarr[0], 0);
}
}

注意:
第一步和第二步提到的泛解析问题,要注意的是如果我们做了真的做了 *.vouov.com的泛解析,那么任何二级域名,例如blog.vouov.com,就是之前我们做过的二级域名都将受到重写规则的影响,譬如我们之前的二级域名blog是解析到/www/vouov/blog目录的,那么做过以上三步之后,打开blog.vouov.com,实际打开的也是vouov.com/rewrite.php?u=blog,所以我们最好在重写规则中来修改blog的重写或者是在第二步中修改服务器的泛解析,将第二步中的ServerAlias *.vouov.com改为我们想要的二级域名
以上几种方法就是比较常用的二级域名实现.不要一直看,还不快动手试试.

No responses yet