phpstudy 上怎么运行 thinkPHP ?

最近在学习thinkPHP,但是本地使用的是phpstudy,就想在phpstudy中使用thinkPHP,这样我的环境就不用再改变也可以学习。首先,先要 下载 thinkPHP  ,下载地址中有两个热门下载链接,一个是核心库,一个完整库。因为我是要学习,因此下载的完整库。库名为:thinkphp_5.0.5_full第二步:解压 thinkphp_5.0.5_full.RAR,并将解压后的  thinkphp_5.0.5_full文件夹名称改为你的项目名称,比如webkit。这样这个webkit的文件夹中所有的文件就是完整版的thinkPHP 第三步:将改名后的 webkit文件夹整个复制到phpstudy的WWW文件夹下,即可第四步:测试。启动phpstudy,在浏览器中输入 http://localhost/TestThink/public/index.php,如果显示如下图的内容,说明thinkPHP可以在phpstudy中运行了:根据thinkPHP的说明文档中描述,publi...

多语言网站怎么实现?

最近有个需求,就是建一个根据全球欧洲、美洲、中东、非洲、亚洲和大洋洲地区中的国家不同语言建一个网站。比如选择欧洲的西班牙,那么这个网站就是以西班牙语展示;选择欧洲的白俄罗斯,那么这个网站就是以俄罗斯语展示;选择亚洲的日本,那么这个网站就是以日语展示...这样的一个需要该如何实现?通过网上查询,有一个办法我认为比较好,但是还没有实现,暂时先记录下来,作为参考的依据,后续实现效果时,可以方便贴代码:一个域名多个语种页面共用一个网站还是以企业为例:中文网站的网址是www.pageadmin.net/cn,英文网站的网址是:www.pageadmin.net/en,俄文网站的网址是:www.pageadmin.net/ru。使用同一个域名,然后根据客户的所在语言区自行选择适合自己的语言,这样不仅可以降低服务器的成本,还可以丰富网站内容,方便管理。而且这样做有利于企业网站的子域名可以共同享受主域名的权重,假如主域名的存在时间已经很长,而且有相当高的权重,那对于子目录的排名来说,也是有利的。其次,用户以及搜索引擎都能根据这些子目录,轻易的辨别出是不同语种的企业网站,这种方式共用一个后台,利于管理和...

php json_encode中提示的中文总是返回"u767bu5f55u6210u529fuff01"的解决办法

最近在练习使用php写一些简单的接口,但是在返回的消息中,如果有中文,在测试后总是返回:{"resultCode":200,"message":"u767bu5f55u6210u529fuff01","data":{"user_id":"29","user_phone":"13918145846","user_name":null,"user_sex":null,"user_password":"123456","user_header":null}}下面是我写的:$row=mysql_num_rows($result);if($row==1){$array=array();while($row=mysql_fetch_array($result)){$array["user_id"]=$row["user_id"];$array["user_phone"]=$row["user_phone"];$array["user_name"]=$row["user_name"];$array["user_sex"]=$row["user_sex"];$array["user_password"...

php post接口,登录功能

登录功能同注册功能一样,都是使用post方法,在执行sql语句时,同样要使用"select*from表名where键名=参数"的查询方式,不同的是:注册使用查询语句是为了判断注册用的字段值是否重复?注册失败:注册成功;登录使用查询语句是为了查询表中是否有那个字段的值?登录成功:登录失败; 另一个相同的地方是都用到了 mysql_num_rows($result)的sql语句,都用它来做一件事,那就是通过它来确定返回的值是否为1,根据返回这个值,来进行判断是否成功:注册时,使用 $row=mysql_num_rows($result);如果$row=1,手机号存在,注册失败;登录时,使用 $row=mysql_num_rows($result);如果$row=1,手机号存在,登录成功;这个接口同样分为5步走:连接服务器;$link=mysql_connect("localhost","root","root")ordie("连接服务器失败".mysql_error());//防止中文乱码mysql_query("SETNAMESUTF8");&nb...

php post接口,注册功能

功能描述:仅输入手机号和密码,实现注册功能。手机号有简单的验证,不可重复输入,否则会报500错误。 在使用RestClient进行post测试时,如果你把参数放在【Headers】区块了,那么,插入的数据值是空的,可以看下图:我把传回的参数值tel和pwd的值和Content-Type放在一起了,这是不对的,因为【Payload】中的参数为空,因此在查看数据库时,发现插入了一条参数为空的数据: 在使用RestClient进行post测试时,【Headers】区块仅仅是添加Content-Type,而【Payload】区块才是添加参数的地方:这时也能查到数据: 同查询功能一样,这个接口也是分5步走:连接服务器,防止中文乱码选择数据库执行sql语句,设置post的参数,判断手机号是否重复根据插入的数据返回值,判断是否新增成功关闭服务器下面是代码:<?php//post接口//1、连接服务器$link=mysql_connect("localhost","root","root")ordie("连接服务器失败".mysql_error());//防止中文乱...

php get接口,并在浏览器中以json格式返回查找到的数据

php查询数据有6个步骤,分别为:连接数据库服务器,使用的命令为:mysql_connect("服务器名称","用户名","密码")选择数据库,使用的命令为:mysql_select_db("数据库的名称[可选的资源号,也就是第一步的变量名$conn]")执行sgl语句,使用的命令为:mysql_query(sql语句);获取执行结果,并把获取到的数据存放在一个数组中,使用的命令为:mysql_fetch_array(),会返回多行,因此要使用while循环关闭数据连接,使用的命令为:mysql_close(连接服务器的变量)将结果转换为JSON格式,并输出到客户端,使用的命令为:json_encode(第4步中定义的数组变量)代码分析:<?php//php接口的写法,php访问mysql数据库的基本步骤,获取用户//1连接数据库服务器:mysql_connect("服务器名称","用户名","密码");ordie("前面语句执行不成功后返回的信息".mysql_error());//.mysql_error()这个函数的意思是什么原因导致前面的sql语句执行失败$conn=my...

css 导航,菜单对应页面切换效果实现方法

实现原理:每个菜单有多个li标签,每个li标签含一个id,li标签的id用来标记:点击效果每个页面有一个id,这个id的作用是对应每个li标签的点击链接对应的页面,它的作用是用来标记:li标签的href指向页面位置li标签的href的指向,通过伪类target指向唯一的页面id:#app-version:target,如果不打算有点击效果,可以在兄弟选择符~后跟当前 li标签的id;如果想要有点击效果,则要在兄弟选择符~后跟当前li标签的所有父节点css:/*点击菜单,选中状态效果*/#home:target~#link-home,#app-version:target~#header#navigation#link-portfolio,#app-config:target~#header#navigation#link-cpmfig,#app-changelog:target~#header#navigation#link-contact,#app-infomation:target~#header#navigation#link-infomation,#about:tar...

react.js CMS 删除功能的实现

页面效果图: 数据操作分析:在查询表组件的 TableData.js中操作如下内容:给每一行绑定一个checkbox,且在点击这个checkbox时,触发action中的一个方法(formatPostCollectionList),这个方法是用来更新选中的实体数组。formatPostCollectionList为action中的方法,需要export定义每一行的实体为一个数组,用变量postCollections表示如果选中当前行,则更新实体数组中的数据;如果取消当前行,则删除实体中的数据;参数为 row ;点击删除按钮后,使用componentDitUpdate()生命周期方法,在组件更新后调用。如果删除成功,则执行action中的方法clearPostCollection()。这个方法是用来清空当前行实体中的数据;如果删除成功,最后执行 查询表的刷新重新加载数据的方法更新实体数据与清空实体数据的方法,在action中执行。 代码分析: 表查询操作调查询接口,Api中的方法searchPostCollection...

android——利用gradle实现多渠道打包并自定义包名(umeng多渠道)

1.首先在mainfest.xml文件中,给umeng_channel设置一个变量“${UMENG_CHANNEL_VALUE}”2.在gradle中,配置flavors。productFlavors{yingyongbao{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_txyyb"]}s360{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_360"]}baidu{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_baidu"]}xiaomi{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_xiaomi"]}huawei{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_huawei"]}meizu{manifestPlaceholders=[UMENG_CHANNEL_VALUE:"bjtq_meizu"]}lenovo{m...

百度搜索附近加盟店等基于LBS云搜索功能的实现

一、注册百度账号,进入开发者平台创建应用并获取ak地址如下http://lbsyun.baidu.com/apiconsole/key/update?app-id=7546025ok获取到了。二、下载SDK,SDK需要用到哪些功能就用那些功能吧。多的就不需要了三、创建LBS云存储数据管理平台http://lbsyun.baidu.com/datamanager/datamanage就在这里这里有个细节一定要注意,是否发布到检索:一定要选择是。不然,搜不到。其他的,就随意了。表名称随便取。PS:一定要注意。开发文档里面的geotable_id很坑爹,根本不是表中字段。而是表自身的ID。如上图的129887就是我在发请求的时候URL中的geotable_id;StringmUrl="http://api.map.baidu.com/geosearch/v3/nearby?"+"mcode=2E:06:78:49:8D:ED:17:79:AD:F5:36:3F:57:DA:2B:C1:75:84:0F:3E;com.example.testbaidulbs&"+"ak=VcVHTEy...

完美实现同时分享图片和文字(Intent.ACTION_SEND)

privatevoidshare(Stringcontent,Uriuri){IntentshareIntent=newIntent(Intent.ACTION_SEND);if(uri!=null){shareIntent.putExtra(Intent.EXTRA_STREAM,uri);shareIntent.setType("image/*");//当用户选择短信时使用sms_body取得文字shareIntent.putExtra("sms_body",content);}else{shareIntent.setType("text/plain");}shareIntent.putExtra(Intent.EXTRA_TEXT,content);//自定义选择框的标题//startActivity(Intent.createChooser(shareIntent,"邀请好友"));//系统默认标题startActivity(shareIntent);}使用android自带分享功能进行分享。转载自:http://blog.csdn.net/spare_h/article/de...

Android应用自动更新功能的实现!!!

自动更新功能的实现原理,就是我们事先和后台协商好一个接口,我们在应用的主Activity里,去访问这个接口,如果需要更新,后台会返回一些数据(比如,提示语;最新版本的url等)。然后我们给出提示框,用户点击开始下载,下载完成开始覆盖安装程序,这样用户的应用就保持最新的拉。为了让大家容易理解,我像往常一样准备一个小例子,这里为了方便我就省去了和后台交互部分了。步骤分别如下:第一步:新建一个Android工程命名为:UpdateDemo.代码结构如下图所示:第二步:新建一个UpdateManager.java类,负责软件更新功能模块,代码如下: [java] viewplaincopy package com.tutor.update;    import java.io.File;  import java.io.FileOutputStream;  import java.io.IOException;  import...

android实现透明和半透明效果

从透明到半透明时一个值的变化过程。#00000000(全透明)——#e0000000(半透明)如果觉得半透明的效果太暗淡。可以设置成#60000000,#80000000,#a0000000等等...

极致精简的fragment实现导航栏切换demo

一个小demo。用button+fragment实现导航栏切换界面,适合刚接触的新手看一下。效果图点击第二个后源码:主界面<spanstyle="font-size:18px;"><spanstyle="font-size:14px;">packagecom.example.fragment;importandroid.app.FragmentManager;importandroid.app.FragmentTransaction;importandroid.os.Bundle;importandroid.support.v4.app.FragmentActivity;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;publicclassMainActivityextendsFragmentActivityimplementsOnClickListener{Buttonb1,b2...

黑马程序员:装饰类的作用——增强被装饰类的方法的功能(利用组合实现复用)

----------------------java+android开发、android培训、期待与您交流!---------------------- 装饰类,的特点在于灵活,高效,可以避免复杂的类的继承体系。装饰类,在疯狂java讲义的5.8.2节出,叫做利用组合实现复用。可以作为参考。/*MyReader--专门用于读取数据的类|--MyTextReader|--MyBufferedTextReader|--MyMediaReader|--MyBufferedMediaReader|--MyDataReader//后续可能还需要增加的类|--MyBufferedDataReader//为了提高读取速度和效率,引入缓冲区,所以按照上面的逻辑,需要引入多个类来完成各自的缓冲,结构复杂,效率低可以用一般的装饰类classMyBufferedReader{MyBufferedReader(MyTextReadertext){}MyBufferedReader(MyMediaReadermedia){}MyBufferedReader(MyDataReaderdata){...
首页上一页...622623624625626...下一页尾页