php学习交流博客

好好写代码,好好痛她

#

开源电子商务网店系统介绍

osCommerce 电子商务网店系统 - http://www.oscommerce.com

osCommerce是一套基于GNU GPL授权的开源在线购物电子商务解决方案。该系统具有易于操作的可视化安装界面、完善的前台商品展示和户在线购物车功能、强大的后台管理和维护功能模块 简单易用、70,000人的官方社区用户和活跃的论坛、121,300家已经注册的在线商店的解决方案3,000个成熟的插件供你选择。 osCommerce采用了Open Source世界里多种主流的技术方案,提供了一整套的免费和开放式的平台,包括强大的 PHP动态网站开发语言,稳定的Apache web服务器, 和速度一流的MySQL数据库服务器。 安装和使用osCommerce,不需要特殊的系统平台,sCommerce可以运行在任何支持PHP 4.1+的web服务器上,环境需要支持 PHP和MySQL即可,操作系统可以支持Linux,Solaris,BSD,或者Microsoft Windows 。

OXID eSales 电子商务网店系统 – http://www.oxid-esales.com/

OXID eSales是一个开源的e-commerce系统,采用PHP开发,使用MySQL来存储数据。OXID eSales拥有一个模块化和基于标准的架构,从而使它更便于定制。该系统拥有所有e-commerce系统应具备的功能包括:B2C、B2B。强大的一 体化市场营销。集成内容管理系统(CMS)。搜索引擎优化的友好网址。

Magento 电子商务网店系统 – http://www.magentocommerce.com/

Magento是一项新的专业开放源代码的电子商务解决方案,提供前所未有的灵活性和控制。

Magento 由一些定义站点的功能,设计和商务逻辑的不同要素构成. 对描述这些Magento系统要素的术语有很深入的了解对于使用这本用户手册是非常关键的. 在本章节中所引入的这些术语很可能对你来讲是一个新的领域, 不必慌张,彻底的读懂它们. 但最重要的是,如果你不能充分的理解所有这些新术语也不要灰心,本章节只是用来引入它们,后面的章节将更深入全面的介绍这些简单的定义.

Magento 最强大的特点之一是可以从一个后台管理多个网站和商店. 这使得店主可以管理不同网址的商店,在相同网址上用不同语言显示相同的产品,以及其它各种设置. 如果你只是在一个网址用一种语言来卖你的产品,那样你就不需要此功能,但是可轻易扩展更多语言的能力使得Magento可以随着你的商务从国内市场成长为 国际市场时而升级.

PrestaShop 电子商务网店系统 – http://www.prestashop.com/

PrestaShop是一个功能丰富,基于PHP5开发的Web2.0网上购物系统。PrestaShop具有可定制,稳定等特点。整个系统只有5.8MB,易于快速安装。

ShopNC 电子商务网店系统 – http://www.shopnc.net/enterprise.php

基于MVC成熟规范,面向企业SOA的高端WEB应用服务开发平台,完善的开发者技术文档支持,内容涉及应用服务器、建模、业务流程、接口、整合等。提供自主研发框架、模块化的程序代码设计和企业级高复杂度、高可用性系统开发咨询和人员培训。
OpenCart 电子商务网店系统 – http://www.opencart.com/

OpenCart是新一代基于PHP开发的开源在线购物车系统。OpenCart具有易于使用,功能丰富,搜索引擎友好和漂亮简洁的操作界面等特点。

ECShop 电子商务网店系统 – http://www.ecshop.com/index.php

ECSHOP是一款开源免费的网上独立建店系统,由专业的开发团队升级维护,并为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。

ECSHOP除了注重功能上的强大以外,还有一个重要的特点就是操作上的方便快捷。我们的设身处地为用户着想的设计理念使我们的产品达到了极高的易用性,只需轻点鼠标+简单录入即可完成商城管理。

ECSHOP在系统架构,数据库,程序等方面的设计都由资深的专业人士完成,保证了系统的健壮和效率,高效合理的管理流程助您在瞬息万变的商务活动中始终领先一步,掌握市场的主动权。

Zen Cart 电子商务网店系统 – http://www.zen-cart.com/

Zen Cart是一个用户友好,开源的购物车系统。它具有:易于安装、多种消费者模式、不限目录深度、多种销售与折扣模式、多种展示方式、XHTML模板系统、多横幅广告控制器、newsletter管理器等特点。

phpShop 电子商务网店系统 – http://www.phpshop.org/

phpShop是一个基于PHP的网上商店系统。phpShop虽然比其它网上购物系统简单,而且功能少。但是它非常灵活可让你按自己的个性化要求进行定制。

php multishop 电子商务网店系统 – http://php-multishop.com/

php multiShop是一个基于PhpNuke与osCommerce的虚拟购物商场。它可被用作具有 任何类型内容(如新闻,论坛,事件等)的门户网站和一个或多个独立的网店。每个商店将有它们自已的域名,并且具有一个典型电子商务所应拥有的全部功能与个 性。每个商店完全可以自主管理好像是独立于该电子商场。

Open Source 电子商务网店系统 [JAVA]

目前,免费的基于Java的在线购物车网店系统有KonaKart。

KonaKart 包含以下若干主要特性 :

标准的购物车特性——支持订单状态,订单历史,客户帐号,产品审查,最佳卖主列表和产品搜索

轻松从osCommerce进行迁移——KonaKart的数据模型和数据库兼容osCommerce2.2版本,可以轻松迁移

模块化设计——可以添加装运,付款、订单汇总和促销模块,并且还支持BIRT报表

支持多种数据库——KonaKart支持MySQL, PostgreSQL, Oracle, DB2和Microsoft SQL Server

完善的换肤功能——所有的功能可以通过 Java APIs 和SOAP Web服务访问到,所以整个界面可以被重写(例如使用OpenLaszlo),另外还支持Struts集成

AJAX 组件——使用AJAX支持单页面的结帐,管理界面也是通过使用了Google Web Toolkit (GWT)了的AJAX和JavaScript实现的。

KonaKart 还具有基于角色的安全和审校、国际化(I18N)支持、一个健壮的促销子系统,也支持搜索引擎优化 (SEO)。

基于JAVA的开源ecommerce shopping cart现在还非常少,不过商业的java 电子商务系统还是非常成熟的,不过价格都非常高,不建议采用。

我们以后主要考虑采用PHP的open source电子商务网店系统,当然也可以有其他选择,比如amazon的webstore, 不一定非要在自己的主机和服务器构建系统,完全可以租用amazon,yahoo,ebay等公司的电子商务webstore来开展我们的 dropship商店业务,这样既方便又能得到更多的技术支持,这是使用open source的电子商务系统无法做到的,不过这又需要添加额外的指出了,amazon的webstore每个月大概需要花费60$,而且还需要7%的 sale fee,算下来基本不可能有什么利润了。这里我们只给大家一些建议,可行性方面还需要自己去考察,下手之前一点要多方考虑,不然亏钱了可不要算我头上啊!

posted @ 2010-10-17 21:27 王吉刚 阅读(727) | 评论 (0)编辑 收藏

smarty分页插件

     摘要: 01 <?php02     function smarty_function_page($params,&$smarty){03         $pagenum = $params["pagenum"]...  阅读全文

posted @ 2010-10-17 21:26 王吉刚 阅读(355) | 评论 (0)编辑 收藏

独立wamp环境安装、配置

在安装之前我们先把PHP Mysql Apache下载好

我今天用的MySQL是 mysql-essential-5.1.41-win32版本的
PHP是php-5.2.3-Win32版本
Apache是apache_2.2.4-win32-x86-no_ssl版本

有需要的可以在下面下载最新版本

Mysql
PHP
Apache

下面,我们可以进行安装了.[建议先装MySQL,一般按照问题多的就是MySQL]
先安装MySQL
参考:  

 

安装ok,
接着,开始安装Apache服务器

将php文件拷贝到根目录下面
解压,重命名为PHP文件
在建立一个www目录,作为PHP文件存放的根目录

好了。安装的步骤基本上完成了
接着就是进行环境的配置

打开php文件 找到php.ini-dist文件,重命名为php.ini。也就是去掉后面的-dist
【这个php.ini文件很重要,是php的配置文件】
打开php.ini
ctrl+f找到extension_dir修改为 extension_dir = “E:/LAMP/PHP/ext”

找到;extension=php_mysql.dll 将前面的;去掉.也就是开启php的MySQL服务了

ok后保持php.ini

接开始配置Apache

1.找到Apache\conf文件夹下面的httpd.conf文件

2.找到LoadModule ssl_module modules/mod_ssl.so

在其后面添加

LoadFile “E:/LAMP/PHP/libmysql.dll”
LoadModule php5_module “E:/LAMP/PHP/php5apache2_2.dll”
PHPIniDir “E:/LAMP/PHP/”

这个我就不做解释,一看就懂,配置相关 但要根据自己的路径不同进行修改

3.找到<Directory “E:/LAMP/Apache/htdocs”>

修改文件存放的根目录路径,E:/LAMP/Apache/htdocs是默认的存放路径 刚刚前面显示It works!的文件就存放在这个路径下

下面我们将路径改到www目录下

E:\LAMP\www

这个路径要改两处,还有在DocumentRoot 后面路径一样

4.找到DirectoryIndex index.html

在后面添加成DirectoryIndex index.html index.php

修改apache的默认首页 从左到右的查找

5.找到AddType application/x-gzip .gz .tgz

在其后面添加

AddType application/x-httpd-php .php

执行php文件,解析php后缀名文件

注:

加入“AddType application/x-httpd-php .php”、“AddType application/x-httpd-php .html”两行,你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt”,让普通的文本文件格式也能运行php程序。

好了.我们来测试一下我们的配置可正确

别忘记了还得重新启动Apache

在www目录下面新建一个index.php文件写入<?php  phpinfo(); ?>

打开浏览器输入http://localhost/index.php

这样我们的环境,初步算是配置完成

趁着现在还有点事情

我们继续来把phpmyadmin配置一下

将下载好的phpmyadmin文件解压到www目录下重命名为phpmyadmin

找到config.sample.inc.php文件 重命名为config.inc.php

在浏览器打开http://localhost/phpmyadmin/

就可以进入phpmyadmin登陆页面

默认用户名为root

我们的密码之前设置的也是root 这样就可以登陆进去

这么轻松就将phpmyadmin搞定了. 但还是有问题存在

那我们来一个一个解决吧

1.解决mbstring

打开php.ini  找到mbstring   去掉前面的分号 打开

找到mcrypt 也要打开

2.解决mcrypt问题

将php文件夹下面的libmcrypt.dll拷贝到

C:\windows\system32系统目录下
重启Apache 问题就解决了

3.解决出现提示短语密码的问题
打开phpmyadmin 中的config.inc.php文件
找到 $cfg['Servers'][$i]['auth_type'] = 'cookie';  在其后面添加一行

$cfg['blowfish_secret'] = 'sakia';(后面的参数不能和MySQL密码重复, 但可以自定义其他字符)

4.链接表的额外特性尚未激活.问题的解决
建立一个名为phpmyadmin的数据库
把目录下scripts/create_tables.sql导入到这个库
【在phpmyadmin导航中找到导入就ok。
命令行下mysqldir/bin/mysql -u root -p /phpadmin_dir/scripts/create_tables.sql】
打开config.inc.php

$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
 $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
 $cfg['Servers'][$i]['relation'] = 'pma_relation';
 $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
 $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
 $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
 $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
 $cfg['Servers'][$i]['history'] = 'pma_history';
 $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
将上面的注释全部去掉
然后,重新启动Apache 还得情况session 如果,出现继续报错 已禁用 不要着急 .把浏览器关掉重启,就ok了
最后,这些问题基本上都解决了 

一天结束 回去了~

posted @ 2010-10-17 21:24 王吉刚 阅读(406) | 评论 (0)编辑 收藏

虚拟主机的配置

在配置好的环境下,配置虚拟主机 我这里用的名字是wamp  也可用域名 如www.jigwang.com

打开Apache主配置目录 httpd.conf 开启虚拟主机服务

找到Include conf/extra/httpd-vhosts.conf 删除前面的#开启服务

打开D:\WAMP\Apache\conf\extra文件夹下httpd-vhosts.conf文件

在文件的最后添加

<VirtualHost *:80>
DocumentRoot D:/WAMP/wamp
ServerName wamp
<Directory “D:/WAMP/wamp”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

上面是配置的虚拟主机

<VirtualHost *:80>
DocumentRoot D:/WAMP/www
ServerName localhost
</VirtualHost>

但还是要将原来的localhost配置一下

修改C:\WINDOWS\system32\drivers\etc系统文件夹下面的hosts文件

在最后后面添加

127.0.0.1       wamp

重启Apache 打开浏览器 http://wamp/

还得测试一下localhost  打开http://localhost/

这样虚拟主机就配置ok了

posted @ 2010-10-17 21:23 王吉刚 阅读(226) | 评论 (0)编辑 收藏

$_SERVER的详细参数整理

01 $_SERVER['PHP_SELF']                #当前正在执行脚本的文件名,与 document root相关。
02 $_SERVER['argv']                    #传递给该脚本的参数。
03 $_SERVER['argc']                    #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。
04 $_SERVER['GATEWAY_INTERFACE']    #服务器使用的 CGI 规范的版本。例如,“CGI/1.1”。
05 $_SERVER['SERVER_NAME']            #当前运行脚本所在服务器主机的名称。
06 $_SERVER['SERVER_SOFTWARE']        #服务器标识的字串,在响应请求时的头部中给出。
07 $_SERVER['SERVER_PROTOCOL']        #请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
08 $_SERVER['REQUEST_METHOD']        #访问页面时的请求方法。例如:"GET"、”HEAD”,”POST”,”PUT”。
09 $_SERVER['QUERY_STRING']            #查询(query)的字符串。
10 $_SERVER['DOCUMENT_ROOT']        #当前运行脚本所在的文档根目录。在服务器配置文件中定义。
11 $_SERVER['HTTP_ACCEPT']            #当前请求的 Accept: 头部的内容。
12 $_SERVER['HTTP_ACCEPT_CHARSET']    #当前请求的 Accept-Charset: 头部的内容。例:"iso-8859-1,*,utf-8"。
13 $_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。
14 $_SERVER['HTTP_ACCEPT_LANGUAGE']    #当前请求的 Accept-Language: 头部的内容。例如:“en”。
15 $_SERVER['HTTP_CONNECTION']        #当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
16 $_SERVER['HTTP_HOST']            #当前请求的 Host: 头部的内容。
17 $_SERVER['HTTP_REFERER']            #链接到当前页面的前一页面的 URL 地址。
18 $_SERVER['HTTP_USER_AGENT']        #当前请求的 User_Agent: 头部的内容。
19 $_SERVER['HTTPS']                #如果通过https访问,则被设为一个非空的值(on),否则返回off
20 $_SERVER['REMOTE_ADDR']            #正在浏览当前页面用户的 IP 地址。
21 $_SERVER['REMOTE_HOST']            #正在浏览当前页面用户的主机名。
22 $_SERVER['REMOTE_PORT']            #用户连接到服务器时所使用的端口。
23 $_SERVER['SCRIPT_FILENAME']        #当前执行脚本的绝对路径名。
24 $_SERVER['SERVER_ADMIN']            #管理员信息
25 $_SERVER['SERVER_PORT']            #服务器所使用的端口
26 $_SERVER['SERVER_SIGNATURE']        #包含服务器版本和虚拟主机名的字符串。
27 $_SERVER['PATH_TRANSLATED']        #当前脚本所在文件系统(不是文档根目录)的基本路径。
28 $_SERVER['SCRIPT_NAME']            #包含当前脚本的路径。这在页面需要指向自己时非常有用。
29 $_SERVER['REQUEST_URI']            #访问此页面所需的 URI。例如,“/index.html”。
30 $_SERVER['PHP_AUTH_USER']        #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
31 $_SERVER['PHP_AUTH_PW']            #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
32 $_SERVER['AUTH_TYPE']            #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。

posted @ 2010-10-17 21:22 王吉刚 阅读(153) | 评论 (0)编辑 收藏

php获取客户端IP地址的几种方法

     摘要: code11 //php获取ip的算法2 $iipp=$_SERVER["REMOTE_ADDR"];3 echo $iipp;code201 //php获取ip的算法02 $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_...  阅读全文

posted @ 2010-10-17 21:21 王吉刚 阅读(1428) | 评论 (0)编辑 收藏

PHP程序员最易犯10种错误

     摘要: 认真看了一下,觉得写的很多东西的确常犯这样的事.所以,转载了.也推荐大家共赏PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大多数和安全相关。看看你犯了几种1.不转意html entities  一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要...  阅读全文

posted @ 2010-10-17 21:20 王吉刚 阅读(146) | 评论 (0)编辑 收藏

详细的JavaScript语法总结

1.      document.write(“”); 输出语句
2.     JS中的注释为//
3.     传统的HTML文档顺序是:document->html->(head,body)
4.     一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)
5.     得到表单中元素的名称和值:document.getElementById(“表单中元素的ID号”).name(或value)
6.     一个小写转大写的JS: document.getElementById(“output”).value = document.getElementById(“input”).value.toUpperCase();
7.     JS中的值类型:String,Number,Boolean,Null,Object,Function
8.     JS中的字符型转换成数值型:parseInt(),parseFloat()
9.     JS中的数字转换成字符型:(“”+变量)
10.  JS中的取字符串长度是:(length)
11.   JS中的字符与字符相连接使用+号.
12.  JS中的比较操作符有:==等于,!=不等于,>,>=, <. <=
13.  JS中声明变量使用:var来进行声明
14.  JS中的判断语句结构:if(condition){}else{}
15.  JS中的循环结构:for([initial e xpression];[condition];[upadte e xpression]) {inside loop}
16.  循环中止的命令是:break
17.  JS中的函数定义:function functionName([parameter],…){statement[ s ]}
18.  当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.
19.  窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self
20.  状态栏的设置:window.status=”字符”;
21.  弹出提示信息:window.alert(“字符”);
22.  弹出确认框:window.confirm();
23.  弹出输入提示框:window.prompt();
24.  指定当前显示链接的位置:window.location.href=”/blog/URL”
25.  取出窗体中的所有表单的数量:document.forms.length
26.  关闭文档的输出流:document.close();
27.  字符串追加连接符:+=
28.  创建一个文档元素:document.createElement(),document.createTextNode()
29.  得到元素的方法:document.getElementById()
30.  设置表单中所有文本型的成员的值为空:
           var form = window.document.forms[0]
          for (var i = 0; i <form.elements.length;i++){
               if (form.elements.type == “text”){
                     form.elements.value = “”;
              }
         }
31.   复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)
32.   单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度document.forms[0].groupName.length
33.   单选按钮组判断是否被选中也是用checked.
34.  下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)
35.  字符串的定义:var myString = new String(“This is lightsword”);
36.   字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();
37.  返回字符串2在字符串1中出现的位置:String1.indexOf(“String2″)!=-1则说明没找到.
38.  取字符串中指定位置的一个字符:StringA.charAt(9);
39.  取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);
40.   数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数
41.  定义日期型变量:var today = new Date();
42.   日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear() 得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒  [注意:此日期时间从0开始计]
43.  FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames["frameName"].ObjFuncVarName,frameName.ObjFuncVarName
44.  parent代表父亲对象,top代表最顶端对象
45.  打开子窗口的父窗口为:opener
46.   表示当前所属的位置:this
47.   当在超链接中调用JS函数时用:(javascript :) 来开头后面加函数名
48.   在老的浏览器中不执行此JS: <!–      //–>
49.   引用一个文件式的JS: <script type=”text/javascript” src=”/blog/aaa.js”> </script>
50.   指定在不支持脚本的浏览器显示的HTML: <noscript> </noscript>
51.   当超链和onCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例: <a href=”/blog/a.html” onclick=”location.href=”/blog/b.html”;return false”>dfsadf </a>
52.  JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,
String,SyntaxError,TypeError,URIError
53.   JS中的换行:\n
54.   窗口全屏大小: <script>function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen; </script>
55.   JS中的all代表其下层的全部元素
56.   JS中的焦点顺序:document.getElementByid(“表单元素”).tabIndex = 1
57.  innerHTML 的值是表单元素的值:如 <p id=”para”>”how are <em>you </em>” </p>,则innerHTML的值就是:how are <em>you </em>
58.  innerTEXT的值和上面的一样,只不过不会把 <em>这种标记显示出来.
59.  contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.
60.  isDisabled判断是否为禁止状态.disabled设置禁止状态
61.  length取得长度,返回整型数值
62.  addBehavior()是一种JS调用的外部函数文件其扩展名为.htc
63.  window.focus()使当前的窗口在所有窗口之前.
64.  blur()指失去焦点.与FOCUS()相反.
65.  select()指元素为选中状态.
66.  防止用户对文本框中输入文本:onfocus=”this.blur()”
67.  取出该元素在页面中出现的数量:document.all.tags(“div(或其它HTML标记符)”).length
68.  JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()
69.  状态栏文字的设置:window.status=’文字’,默认的状态栏文字设置:window.defaultStatus = ‘文字.’;
70.  添加到收藏夹:external.AddFavorite(“http://www.jigwang.com/css/”;,”jaskdlf”);
71.  JS中遇到脚本错误时不做任何操作:window.onerror = doNothing; 指定错误句柄的语法为:window.onerror = handleError;
72.  JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener…的多重继续.
73.  JS中的self指的是当前的窗口
74.  JS中状态栏显示内容:window.status=”内容”
75.  JS中的top指的是框架集中最顶层的框架
76.  JS中关闭当前的窗口:window.close();
77.  JS中提出是否确认的框:if(confirm(“Are you sure?”)){alert(“ok”);}else{alert(“Not Ok”);}
78.  JS中的窗口重定向:window.navigate(“http://www.jigwang.com/css/”;);
79.  JS中的打印:window.print()
80.  JS中的提示输入框:window.prompt(“message”,”defaultReply”);
81.  JS中的窗口滚动条:window.scroll(x,y)
82.  JS中的窗口滚动到位置:window.scrollby
83.  JS中设置时间间隔:setInterval(“expr”,msecDelay)或setInterval(funcRef,msecDelay)或setTimeout
84. JS中的模态显示在IE4+行,在NN中不行:showModalDialog(“URL”[,arguments][,features]);
85. JS 中的退出之前使用的句柄:function verifyClose(){event.returnValue=”we really like you and hope you will stay longer.”;}}  window.onbeforeunload=verifyClose;
86.  当窗体第一次调用时使用的文件句柄:onload()
87.  当窗体关闭时调用的文件句柄:onunload()
88.  window.location 的属性: protocol(http:),hostname(http://www.jigwang.com/),port(80),host(http://www.jigwang.com/),pathname(“/a /a.html”),hash(“#giantGizmo”,指跳转到相应的锚记),href(全部的信息)
89.  window.location.reload()刷新当前页面.
90.  window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)
91.   document.write()不换行的输出,document.writeln()换行输出
92.   document.body.noWrap=true;防止链接文字折行.
93.  变量名.charAt(第几位),取该变量的第几位的字符.
94.  “abc”.charCodeAt(第几个),返回第几个字符的ASCii码值.
95.  字符串连接:string.concat(string2),或用+=进行连接
96.  变量.indexOf(“字符”,起始位置),返回第一个出现的位置(从0开始计算)
97.  string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.
98.  string.match(regExpression),判断字符是否匹配.
99.  string.replace(regExpression,replaceString)替换现有字符串.
100.  string.split(分隔符)返回一个数组存储值.
101.  string.substr(start[,length])取从第几位到指定长度的字符串.
102.  string.toLowerCase()使字符串全部变为小.
103.  string.toUpperCase()使全部字符变为大写.
104.  parseInt(string[,radix(代表进制)])强制转换成整型.
105.  parseFloat(string[,radix])强制转换成浮点型.
106.  isNaN(变量):测试是否为数值型.
107.  定义常量的关键字:const,定义变量的关键字:var

posted @ 2010-10-17 21:18 王吉刚 阅读(230) | 评论 (0)编辑 收藏

PHP基础学习笔记之基本语法

php基础学习已经差不多了,但是为检验自己的学习掌握情况,把php基础知识回顾复习了一下

第一个PHP程序
echo "Hello World!";
?>
1 注释
1.1多行
/*
xxxx
*/
1.2单行
//xxxxx
2.赋值
$a = ‘test’;
2.1 检查变量是否已声明
isset($a)
2.2 释放变量
unset($a);
2.3 静态变量
static $a;
静态变量可在一个函数几次调用中保持数值,而不会被系统释放,但只能在声明它的函数集中访问到,只能在第一次声明时初始化。
3. 基本类型
3.1 数字类型
3.1.1整数(integer,关键字int)
.整数可用8进制 10进制 16进制 表示
$a=123; //10进制
$b=0123; //8进制
$c=0×123; //16进制
.由于操作系统不同整数精度变化很大,但32位是最常见的
3.1.2浮点(float,关键字float,64位浮点数,精度14位)
.PHP中float和double是等同的
.使用浮点数切记:他们只是近似值
如:2.5在内部常被表示为2.499999999
又如:
if(0.7+0.1>=0.8){
echo ‘a’;
}else{
echo ‘b’;
}
返回值为b,这取决于浮点数的确切实现方式,推荐做法是避免使用浮点值做比较
3.2 字符串
.用单引号或双引号包围
如:echo “Hello”; echo ‘Hello’;
.双引号中的变量会被解释,单引号中的则不会
如:var $name = ‘jano’;
echo “my name is $name.”;//显示 my name is jano
echo ‘my name is $name’; //显示 my name is $name
.双引号中的变量可用{}包围来区分变量和后面的字母
如:var $n = “my name is {$name}Yu”;//如果没有{}就无法区分变量和字符
.heredoc
$a = <<< HTM
skjdfjsd
lksdfjsdlf
HTML; //后面的表示必须顶在最前面
.获取字符串中的某个字符
$a = 'Hello';
echo $a{1}; // 显示e
echo $a[1]; // 显示e
推荐使用第一种写法可以和数组区分开
3.3 布尔值
true false
4.常用函数
. nl2br 吧字符串中的换行符转化成
如:echo nl2br($a);
.var_dump
显示变量类型和值,如:var_dump($a);
.print_r
var_dump加强版,打印对象类型和内容,数组则打出所有元素,类对象则打印所有成员
如:$a = array(1,2,3,4,5);
print_r($a);
5.数组
数组用array方法声明
例:
$a = array(‘a’,'b’,'c’);
$a = array(‘a’,'b’,array(1,2,3));
.默认从索引0开始赋值
如:$a[]=’a'; //$a[0]=’a';
$a[]=’b'; //$a[1]=’b';
.使用字符串值做索引
如:
$a = array(‘car’=>’Ferrari’,'Number’=>21,’City’=>’CQ’);
echo $a['car'];
.遍历并更改数组元素值
foreach($array as $key=>&$value){// &$value
//…
}
6.特殊类型和值
.NULL 区分大小写,表示无值,从没赋值,用unset清除
.资源
7.强制类型转换
(int)$a
(float)$a
(string)$a
(bool)$a
(array)$a
(object)$a
.特殊的
(int)”0123″;//返回123,没有把8进制0123转换为10进制数字
(int)”123 mu tou ren”;//返回123
(int)”mu tou ren 123″;//返回0,因为转换只从第一个字符开始读,发现非数字立即停止
.转换为布尔值
非空非零则为true(包括正数和负数),0为false
包含0个元素的数组为false
NULL为false

转换为整数
.浮点转换为整型
小数点后的数字舍弃,如果超过证书有效位,结果可能是0或者最小负数
.布尔转换为整型
true为1
false为0
.字符串转换为整型
对字符串左侧第一位进行判断。如果第一位是数字,则会从第一位开始将读取到数字转换成整数。如果第一位不是数字结果为0.
.PHP没有提供其他类型转换为整数的方法

转换为浮点数
.整数转换为浮点数
结果不变
.布尔转换为浮点数
true为1
false为0
.字符串转换成浮点数
与整数类似
.PHP没有提供其他类型转换为浮点数的方法

转换为字符串
将非字符串转换为字符串的方法是在变量前使用“(string)”强制转换。
规则如下:
1.整型或浮点型:结果为其值
2.布尔型:true转换为’1′ , false转换为空字符串
3.对象或数组:如果被转换的变量是对象或数组,则转换结果将为字符串对象或字符串数组,需要根据实际情况进行分析。
4.资源类型:返回资源标识号
8.类型判断与获取

.转换成数组
在变量前用“(array)”强制转换。将变量转换成员变量数据类型相同的数组,数组中只有一个元素。
如:
$a=1;
print_r((array)$a);
结果:
Array
(
[0]=> 1
)

.转换为对象
在变量前用“(object)”强制转换。将生成一个新对象,其中名为scalar的成员变量将包含原变量的值。如:
$a=1;
$o = (object)$a;
echo $o->scalar;

使用函数进行数据转换
bool settype(var, string type)

type值: boolean,integer,float,string,array,object,null

.判断类型函数
is_integer 如:is_integer($a); //返回true或false
is_float
is_double
is_real
is_int
is_long
is_numeric
is_string
is_bool
is_array
is_object
is_null
is_resource
is_scalar 是否为一个标量
.类型获取
gettype($a);
9.变量和常量
.常量
define(‘NUM_USR’,’0′);
$u = NUM_USR;
.引用
$a=0;
$b = &$a;
$b++;
echo $a;//显示1,因为$b是$a的引用,$b改变就表示$a改变
10.操作符
10.1 数学操作符
+ – * / %(取余)
10.2 比较运算符
==
=== 值相同,类型相同
!=
<> 和!=一样都是不等于
!== 值相同,类型不同
<
>
<=
>=
10.3 逻辑运算符
and && 与
or || 或
xor 异或,若一个为true,但不是两个都为true,则结果为true
! 非
10.4 按位操作
& 按位与
| 按位或
^ 按位异或
~ 按位非
<< 左移位
>> 右移位
10.5 三元操作符
表示问号前面的表达式是否为true,是则返回冒号前面的值,不是则返回冒号后面的值
如:
$c = $a > $b ? 1:2;
echo $a>$b ? “hello”:”no”;
.下面两个语句是等价的
$a = ($b != ‘china’) ? true : false;
$a = $b != ‘china’;
10.6 其他操作符
++ 自增
– 自减
@ 忽略特定函数的调用失败报错,如:$u=@file(xxx);
. 字符串连接操作,如:$a = ‘hello’.'world’; $a = ‘hello’.$a;
11.7 特殊的逻辑运算符表达式
$a = 0;
$b = 100;
echo $a || $b;//$a转换为bool值为true时,echo $a,否则echo $b,不管$b表达式是否为true,此表达式会始终显示100
echo $a && $b;//将什么都不显示,因为整个表达式$a && $b返回false
$a = 1;
$b = 0;
echo $a && $b;//将什么都不显示,因为整个表达式$a && $b返回false
echo $a && $b;//始终显示$a
$a = 1;
$b = 0;
$a && $b=12;
echo $b;//显示12,$a是否为true,为true就会执行$b=12,系统首先读取&&,知道这是个与,于是开始执行&& amp;前面的语句,发现返回true就再执行&&后面的语句,发现返回false就不会再执行&&后面的语句了,因为&&逻辑,只要有一个 false 整个表达式就变成false
11.控制结构
11.1 if语句
if(){
//…
}elseif{
//…
}else{
if(){
}
}
11.2 switch语句
switch(){
case expr:
//…
break;
case expr2:
//…
break;
default:
//…
break;
}
如:
switch($a){
case ‘go’:
//…
break;
case ‘come’:
//…
break;
default:
//…
break;
}
11.3 while循环
while(){
//…
}
11.4 for循环
for(expr1;expr2;expr3){
//…
}
表达式计算顺序
expr1 当第一次遇到for循环时执行一次。执行完,开始循环迭代
expr2 每次迭代前计算它。如果结果为true就执行代码块
expr3 在每次迭代后计算(执行)它,结果被忽略
expr2 迭代重新开始
11.5 foreach循环
foreach($arrays as $item){
echo $item;
}
11.6 中断循环
break 终止当前循环,后面可以接整数参数,表示跳出多少层循环。
如:break 2;
continue 跳过本次循环进入下次循环,后面可以接整数参数,表示跳过几次循环
如:continue 2;
12 函数
function 函数名(){
//block
}
12.1用return 可停止函数运行
如:
function aa(){
return;
}
12.2参数
引用传递
function aaa(&$xxx){
}
12.3默认值
function aaa($a,$b = ‘xxx’){}
12.4可变数量的参数
function xxx(){}
.func_num_args()多少个参数
.func_get_arg()给定的索引位置返回参数
.func_get_args()在数组中返回所有参数
如:
function a(){
$all_params = func_get_args();
}
12.5返回值
function xxx(){
return 值;
}
若想返回多个值,可把结果组成数组并返回
函数支持嵌套,如:函数a中定义了函数b,那么只有在函数a被调用了一次后,函数b的定义才会生效,PHP没有闭包
函数名字大小写不敏感

引用
1.变量引用
$b=&$a;
这样操作$b就是操作$a
2.函数引用
用来实现对函数返回结果的引用
如:
function $func(){
static $var = 0;
return $var;
}
$a=&func();
$a=1;
$b=&func();
echo $b;
结果为:
1
$a的复制对函数的返回值造成了影响,导致$b的值被赋成了$a的值

3.引用释放
$a=1;
$b=&a;
echo $b;
unset($b);//变量$b被释放,但$a被保留
echo $a;

使用unset释放引用后不会小鼠引用中的值

12.6变量范围
脚本内变量为脚本的全局变量,函数内要使用需要用global
如:
$a = 1;
$b = 2;
function a(){
global $a,$b;
echo $a+$b;
}
通过这种访问在函数推出时会记忆变量的任何改动,和引用差不多
12.7 超级全局变量
$GLOBALS 包含正在执行的脚本内部全局可用的所有变量的引用
$_SERVER
$_GET
$_POST
$REQUEST
$_SESSION
$_COOKIE
$_ENV 保存PHP语言引擎所在进程的环境变量。数组的键是变量名
$php_errormsg 执行当前脚本时生成的最新错误信息,只在发生错误的代码范围内可用,php.ini中的track_errors配置要打开
12.8函数范围的可用性
不管在定义前定义后调用,都可用。
12.9 把函数作为变量
function a($msg){}
function b($msg){}
function c($msg){}
$g = ‘a’;
$g(msg);
13.包含文件
inclue require
如:include(‘a.php’);require(‘a.php’);
inclue是在调用include语句时加载文件
require是在脚本开始加载文件
区别:
1.require不管语句是否执行都会加载,include相反
如:
$a=1;
if($a==2)require(‘a.inc’); //条件不成立但也加载了,但没有被调用
2.文件不存在时错误处理方式不同
require抛出知名错误并终止脚本,include只有警告信息

13.1 路径
如果没指明明确路径,PHP会在当前目录中查找包含的文件,然后查找php.ini文件中的include_path设置中列出的目录,在unix下分割字符是冒号,在window下是分号
如:
include_path=”.:/a/f/”
include_path=”.;c:\a\f”
13.2 包含文件返回值
a.php
return pi();
?>
b.php
$k=include('a.php');
?>
13.3 防止重复载入
require_once();
include_once();
13.4 自动载入
在php.ini的auto_prepend_file和auto_append_file 在每次执行脚本之前和之后要包含的文件

posted @ 2010-10-17 21:17 王吉刚 阅读(164) | 评论 (0)编辑 收藏

通过jQuery实现导航隐藏,弹出效果

     摘要: 下午忙着搞后台.一直没个好的思路,就在网上download 后台模板,看了几个觉得还界面设计看的还蛮好的.然后,就准备着手研究一下,看了代码,就觉得不是好的作品,全是img和table推起来的.很是囊肿.很快就放弃了,但有急着把完成后台,没办法。只有自己动手了.今天就和大家分享一个 实现导航隐藏和弹出的效果   其实,懂jQuery的朋友就知道这个其实  就...  阅读全文

posted @ 2010-10-17 21:16 王吉刚 阅读(341) | 评论 (0)编辑 收藏

仅列出标题
共8页: 1 2 3 4 5 6 7 8