为您找到搜索结果:4586个
php生成代金券码
<?php/***@paramint$no_of_codes//定义一个int类型的参数用来确定生成多少个优惠码*@paramarray$exclude_codes_array//定义一个exclude_codes_array类型的数组*@paramint$code_length//定义一个code_length的参数来确定优惠码的长度*@returnarray//返回数组*/functiongenerate_promotion_code($no_of_codes,$exclude_codes_array='',$code_length=4){$characters="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";$promotion_codes=array();//这个数组用来接收生成的优惠码for($j=0;$j<$no_of_codes;$j++){$code="";for($i=0;$i<$code_length;$i++){$code.=$characters[mt_rand(0,strlen($characters)-1)];...
什么是thinkphp
ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持。...
thinkphp 5.6以上版本出现No input file specified解决办法
打开thinkphp,出现Noinputfilespecified.解决方法:在工程下的.htaccess文件里,把RewriteRule^(.*)$index.php/$1[QSA,PT,L],改成:RewriteRule^(.*)$index.php[L,E=PATH_INFO:$1]...
thinkphp查询:
$Role=D('role');//查询数据表$role_data=$Role->order('role_id')->group('role_name')->select();//查询数据库order(’XXX‘)-----按某某某排序查询group(’XXX‘)-----查询数据去重...
php的http
http_build_query生成url-encoded之后的请求字符串 1、使用键值对,关联数组:<?php$data=array('foo'=>'bar','baz'=>'boom','cow'=>'milk','php'=>'hypertextprocessor');echohttp_build_query($data);/*输出:foo=bar&baz=boom&cow=milk&php=hypertext+processor*/?>2、使用数字下标<?php$data=array('foo','bar','baz','boom','cow'=>'milk','php'=>'hypertextprocessor');echohttp_build_query($data);/*输出:0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor*/echohttp_build_query($data,...
PHP HTTP请求
stream_context_create1、curl仍然是最好的HTTP库,没有之一。可以解决任何复杂的应用场景中的HTTP请求2.文件流式的HTTP请求比较适合处理简单的HTTPPOST/GET请求,但不适用于复杂的HTTP请求3.PECL_HTTP扩展写代码更加简洁,省事,但成熟度不好,编程接口不统一,文档和实例匮乏。 PHP模拟发送HTTP请求:1、file_get_contents发送get请求<?php/***发送post请求*@paramstring$url请求地址*@paramarray$post_datapost键值对数据*@returnstring*/functionsend_post($url,$post_data){$postdata=http_build_query($post_data);$options=array('http'=>array('method'=>'POST','header'=>'Content-type:application/x-www-form-urlencoded','content'...
php中抽象类和接口的概念和区别
//抽象类的定义:abstractclassAAA{//定义一个抽象类abstractfunctionbb();......}classccextendsAAA{//实现抽象类的方法functionbb(){echo'111111111111';}}//使用方法$aa=newcc;$aa->kx();//1.定义一些方法,子类必须完全实现这个抽象中所有的方法//2.不能从抽象类创建对象,它的意义在于被扩展//3.抽象类通常具有抽象方法,方法中没有大括号//4.抽象方法不必实现具体的功能,由子类来完成//5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义//6.抽象类的方法可以有参数,也可以为空//7.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数//////////////////////////////接口类的定义:interfaceShop{publicfunctionbuy($gid);publicfunctionsell($gid);abstractfunctionview($gid);}//如果要使用接口,必须定义接口类中的所以方法少一个...
【PHP编程之路
设置apache虚拟目录 1.开启“虚拟目录配置文件”httpd-vhosts.conf文件路径:wampinapacheapache2.4.9confextrahttpd-vhosts.conf将以下配置:# Virtual hosts # Include conf/extra/httpd-vhosts.conf 改为: # Virtual hosts Include conf/extra/httpd-vhosts.conf 2.设置虚拟目录可访问 文件路径:wampinapacheapache2.4.9confextrahttpd-vhosts.conf将以下配置:<Directory /> AllowOverride none &nb...
php中iconv函数的bug问题
在php中,使用iconv函数转换字符集很好用,不过有时iconv转换会返回false或空字符串,这不算是iconv的问题,这其实是字符集的问题,但是实际编码中应该算是iconv的bug了。测试下这段字符串用iconv转换后的效果:$str="www.asdasd.com,ok!thestringis€.我要转换他!⊙●○①⊕◎Θ⊙¤㊣";echo'没有任何参数:',iconv("utf-8","gbk",$str)."<br>";返回结果:第一个特殊字符以后的字符都不能显示。iconv有两个参数:分别是TRANSLIT和IGNORE ,含义是TRANSLIT表示如果目标编码里面不能翻译原编码,那么就直接找一个类似的最相近的字符或者字符串替代,例如€可能会被替换为EUR;而IGNORE 遇到目标字符集不能翻译的原始字符则直接跳过忽略,不返回false。使用方法:$infocontent=iconv("utf-8","gbk//IGNORE",$infocontent);或$infocontent=iconv("utf-8","gbk//TRA...
将查询出的数组存入redis php
我们从数据库查询出来的数据一般为数组的形式,而redis是不支持存入数组的。通常我们首先想到的就是将数组转化为json数据,再将json存入redis,之后取出时再将json转化为php数组。但将查出的数组数据是不能直接用json_encode()的,因为这样会将一组正常的json最终再通过json_decode()转化,会得到一个包含对象的数组,不是原本的数组,而这样含有对象的数组是没法直接被遍历输出的。解决方法:给json_encode()、json_decode函数传入第二个参数true,即:json_encode($json,true);json_decode($json,true);默认是false,即对象;true是数组。这样得到的就都是数组了。数据结构:要存入的数组:E:ProjectlibModelsComplaint.php:476:array(size=69)'id'=>int103863'channel'=>string'ios:appstore'(length=12)'version_code'=>string'30400'(length=5)...
php中操作mysql
认识:1.error_reporting(E_ALL^E_DEPRECATED);//排除所有非致命的错误2.mysql_connect();开启了一个对mysql服务器的连接。mysql_connect("localhost","root","")ordie(mysql_error());//ordie(mysql_error():返回mysql错误信息3.mysql_select_db();选择数据库4.mysql_query("select*fromuserwhereid>5");要执行的sql语句5.mysql_fetch_array($query);结果集,遍历,在结果集中只获取当前一条数据,成功后,指针前移一条,通过指针前移实现函数遍历6."!!"强制转换成布尔型7.mysql_num_rows($sql);//获取结果集中的行数8.mysql_fetch_array($query);//单,得到一个关联数组和索引数组结合,若被执行的话,这一条已被取出,下面在读取会自动读取下一条9.mysql_fetch_assoc($query);//多,仅得到一个关联的数组10....
隐藏php和nginx的版本号、错误码
通常在请求返回时会随带php和nginx的版本号,这样是不安全的,会被人针对版本进行攻击。php和nginx提供了隐藏版本号的方法,只需要简单配置下就可以了。php://php中的php.ini文件,修改配置expose_php=On//On改为Off即可nginx://nginx的nginx.conf文件,修改配置server_tokensoff;//切记是在http下哦error_page404=200/404.html;//隐藏错误码,只需利用=进行自定义设置即可;其中200不设置也可,返回的就是随机的错误码了改完之后都重新启动下就完成了。...
构建php frame
使用composer的自动加载、命名空间及shell脚本,构建原生php框架 #smarty-frame运用php构建自己的框架根目录/application:应用程序核心目录 根目录/configs下: config:应用配置文件 db:数据库配置文件 routes:路由配置文件 fileCache:文件缓存配置 redisCache:redis缓存配置 根目录/src下:考虑将来框架可能还要支持php脚本的执行,所以要将base和web分开,将来要加php脚本时,只需要建立一个console的文件夹就好了。 base:存放基础的类 base下: Application:框架底层基础类 一个抽象类,实现了一个简单的run方法,run方法就是去执行以下handleRequest方法。 定义了一个抽象方法handleRequest,等待被继承,实现。 Controller:包含控制器逻辑的基类 不需要每写一个要去渲染页面的action,都要去找相应...
php---PDO使用及总结
再使用php进行原生框架搭建的过程中,发现即使sql语句错误,php的pdo是不会报错的,非常奇怪然后研究了下,发现原来pdo默认是不报错的,想要报错就要满足两个条件:1、需要将错误处理模式变成异常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);2、所有可能出错的语句都必须进行捕捉 try{ //code }catch(PDOExecption$e){ //错误信息处理 } 总结:pdo使用:$pdo=newPDO("mysql:host=localhost;dbname=kong","root","");$pdo->query();//执行的是select语句,返回值是PDOStatement对象。$pdo->fetchAll(PDO::FETCH_ASSOC);//通过一次调用返回全部结果,并以数组方式保存$pdo->exec();//执行的是返回值为intl的sql语句:增加,修改,删除$pdo->exective();//执行的是预处理语句...