代码如下 | 复制代码 |
<?php function curlQuery($url) { //初始化curl,当然,你也可以用fsockopen代替 //设置网址 //附加Head内容 //是否输出返回头信息 //将curl_exec的结果返回 //设置超时时间 //执行 //关闭curl回话 return $result; //简单处理下url,sina对于没有协议(http://)开头的和不规范的地址会返回错误 //根据长网址获取短网址 //获取请求结果 //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 //解析json //异常情况返回false //根据短网址获取长网址,此函数重用了不少sinaShortenUrl中的代码,以方便你阅读对比,你可以自行合并两个函数 //获取请求结果 //下面这行注释用于调试,你可以把注释去掉看看从sina返回的信息是什么东西 //解析json //异常情况返回false //要缩短的网址 $url = filterUrl($url); |
本文中短连接已经附带的一个appkey不用再自己申请KEY当然你如果需要使用你自己的您也可以自己去替换。至于用法就看你了,镶入到其他程序使用啊?单独做个生成短连接的页面都不管我的事啊。使用方法不多说。最近比较懒。
购物车是现在电商开发者必须要做的一个功能了,下面我来给大家整理两个可用于电商网站的简单购物车程序代码,有兴趣的同学不防进入参考一下例子1
最近在写一个电子商务的网站,在做购物车的时候才发现php里面没有map这种数据结构,我们不能简单的通过一个hashmap来实现购物车,于是我想到到数组,通过数组的值的格式化来进行编写。
也就是说,我们是通过循环数组的值,通过拆分值来判断数据是不是重复,比如我现在浏览的商品的id是4,添加的数量是3,我就在数组里面存放4-3,以后如果当遇到是id是4的时候,我们只是需要时改变数组里面这个位置的数值,如果id在数组里面拆分比较都不存在,则往数组里面添加数据。删除购物车制定id 的商品也是循环数组,这个值,使用unset()来释放这个值。
具体的实现代码:
—————————————————————————————————————————–
代码如下 | 复制代码 |
<?php session_start(); if($_SESSION['carts']==””){ $carts=array(); array_push($carts, “0-0″); $_SESSION['carts']=$carts; } $method=$_GET['method']; if($method==”add”){ $productId=$_GET['productid']; $number=$_GET['number']; $carts=$_SESSION['carts']; $flag=”false”; for($i=0;$i<sizeof($carts);$i++){ $pn=$carts[$i]; $pns=split(“-”, $pn); if($pns[0]==$productId){ $carts[$i]=$productId.”-”.$number; $flag=”true”; $location=$i; } } if($flag==”true”){ $carts[$location]=$productId.”-”.$number; }else{ array_push($carts, $productId.”-”.$number); } $_SESSION['carts']=$carts; } if($method==”delete”){ $productId=$_GET['productid']; $carts=$_SESSION['carts']; for($i=0;$i<sizeof($carts);$i++){ $pn=$carts[$i]; $pns=split(“-”, $pn); if($pns[0]==$productId){ unset($carts[$i]); } } $_SESSION['carts']=$carts; } ?> |
———————————————————————————————————–
上面电子商务课程的时候做的一个简单的程序了,就是一个在线购物,不过还是90多分的哦!~ 其实只要是这种类似的程序,都是简单的增删改查系统,无非就是就对数据库的操作,我们要做的就是很好的实现这个业务逻辑,以及能很好的设计相关的字段来控制,比如是商品的状态的控制,是上线还是下线,还是推荐的。
现在看看连接数据库的代码吧!~
数据库配置代码,其实这个可以在xml配置文件里面设置:
代码如下 | 复制代码 |
class DbConfig{ var $databaseAddress="180.153.178.89"; var $dataBaseUser="pantingwen"; var $databasePassword="753116"; var $database="sqlpantingwen"; /** * @return the $databaseAddress */ public function getDatabaseAddress() { return $this->databaseAddress; } /** * @return the $dataBaseUser */ public function getDataBaseUser() { return $this->dataBaseUser; } /** * @return the $databasePassword */ public function getDatabasePassword() { return $this->databasePassword; } /** * @return the $database */ public function getDatabase() { return $this->database; } /** * @param field_type $databaseAddress */ public function setDatabaseAddress($databaseAddress) { $this->databaseAddress = $databaseAddress; } /** * @param field_type $dataBaseUser */ public function setDataBaseUser($dataBaseUser) { $this->dataBaseUser = $dataBaseUser; } /** * @param field_type $databasePassword */ public function setDatabasePassword($databasePassword) { $this->databasePassword = $databasePassword; } /** * @param field_type $database */ public function setDatabase($database) { $this->database = $database; } } ?> 数据库连接代码: include_once 'DbConfig.php'; define("conn", getcon()); function getcon(){ $dbConfig=new DbConfig(); $con=mysql_connect($dbConfig->getDatabaseAddress(),$dbConfig->getDataBaseUser(),$dbConfig->getDatabasePassword()); return $con; } /** * 选择一款数据库 * Enter description here ... */ function _select_db(){ $dbConfig=new DbConfig(); if(!mysql_select_db($dbConfig->getDatabase())){ exit('找不到指定的数据库'); } } /** * 设置字符集 * Enter description here ... */ function _set_names(){ if(!mysql_query('set names utf8')){ exit('字符集错误'); } } function _query($_sql){ _select_db(); _set_names(); if(!$result=mysql_query($_sql,conn)){ echo mysql_error(); } return $result; } /** * 只能是获取一个数据组 * Enter description here ... * @param unknown_type $_sql */ function _fetch_array($_sql){ return mysql_fetch_array(_query($_sql),MYSQL_ASSOC); } /** * 返回数据组 * Enter description here ... * @param unknown_type $_sql */ function _fetch_array_list($_result){ return mysql_fetch_array($_result,MYSQL_ASSOC); } /** * 影响到到的记录数 * Enter description here ... */ function _affect_rows(){ return mysql_affected_rows(); } /** * 判断是不是存在数据 * Enter description here ... * @param unknown_type $_sql * @param unknown_type $_info */ function _is_repeat($_sql,$_info){ if(_fetch_array($_sql)){ } } function _close(){ if(!mysql_close(_conn)){ exit('关闭异常'); } } ?> |
效果截图:
本方法使用PHPEXCEL插件读取excel文件转化为数组了,后期还有没有完成的我们可以把转换成数组之后再保存到mysql数据库这个就非常的方便了。代码如下 | 复制代码 |
<?php /** * @desc PHPEXCEL导入 * return array(); */ function importExcel($file) { require_once 'PHPExcel.php'; require_once 'PHPExcel/IOFactory.php'; require_once 'PHPExcel/Reader/Excel5.php'; $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format $objPHPExcel = $objReader->load($file); $sheet = $objPHPExcel->getSheet(0); $highestRow = $sheet->getHighestRow(); // 取得总行数 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 $objWorksheet = $objPHPExcel->getActiveSheet(); $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn); $excelData = array(); for ($row = 1; $row <= $highestRow; $row++) { for ($col = 0; $col < $highestColumnIndex; $col++) { $excelData[$row][] =(string)$objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); } } return $excelData; } //用法: importExcel('test.xsl'); |
phpMyAdmin 高级功能尚未完全设置,部分功能未激活。
点击查看提示信息,就会发现 $cfg['Servers'][$i]['savedsearches'] 出现错误提示。
备注:如果是全新安装LAMP一键安装脚本,则不受影响。
1、删除 phpMyAdmin 安装目录 /data/www/default/phpmyadmin 下旧的配置文件 config.inc.php,再下载最新的文件。
命令如下:
rm -f /data/www/default/phpmyadmin/config.inc.php wget --no-check-certificate https://raw.githubusercontent.com/teddysun/lamp/master/conf/config.inc.php -O /data/www/default/phpmyadmin/config.inc.php chown apache:apache /data/www/default/phpmyadmin/config.inc.php
在未看到这篇文章之前我们一般不会对于缓存这么看重,经过测试之后我们发现使用文件缓存比直接使用数据库要快几倍,下面测试是6倍之多哦,下面一起来看看吧。
在Thinkphp项目中测试各种环境下的程序执行时间
不使用缓存:
代码如下 | 复制代码 |
<?php $articles=array(); //循环取出500条文章信息 $overtime=caltime();//结束时间 echo '不使用缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'; ?> |
结果:不使用缓存条件下程序执行时间是:0.0600001811981秒
文件缓存:
代码如下 | 复制代码 |
<?php $starttime=caltime();//开始时间 $articles=S('articles'); $overtime=caltime();//结束时间 echo '使用文件缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'; |
结果:使用文件缓存条件下程序执行时间是:0.00999999046326秒
代码如下 | 复制代码 |
<?php $mem=new Memcache(); $articles=$mem->get('articles'); if(!$articles){ $overtime=caltime();//结束时间 echo '使用memcache缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'; |
结果:使用memcache缓存条件下程序执行时间是:0.00999999046326秒
代码如下 | 复制代码 |
<?php $redis=new Redis(); if(!$redis){ $articles=$redis->get('articles'); if(!$articles){ $overtime=caltime();//结束时间 echo '使用redis缓存条件下程序执行时间是:'.($overtime-$starttime).'秒'; ?> |
结果:使用redis缓存条件下程序执行时间是:0.00999999046326秒
可见使用缓存的条件下,程序的执行速度比不使用缓存的时候快了6倍,
但是不同缓存由于数据不是特别庞大,几乎没有什么差别