Adrai
前端coder的福利, 超实用表单验证框架
展开Biu

本帖最后由 Adrai 于 2014-12-17 21:55 编辑

仿照easyUI验证规则写的一套验证框架,底层实现不一样,效率比EasyUI高

说明:

EJS是我自己平时写代码时慢慢封装的一些常用的方法,基于seajs和Jquery, 以后慢慢就会是一个大的控件库(自家用).

现在已经有很多组件了(本demo中删除其他组件,只保留了验证组件需要用到的核心组件, 即util, 以免展示核心代码时混淆).

本Demo主要用来展示我最近花一天时间仿照EasyUI的规则写的一个验证组件.效率比EasyUI要高.

html核心代码在---- vaild_demo/index.html

js核心代码在---- vaild_demo/js/index/index.js

组件的核心代码在---- vaild_demo/EJS/src/

建议读一下vaild_demo/EJS/src/valid/valid.js的源代码. bindValid方法.

最近更新到1.3版,增加了异步验证的功能.

第一个验证框使用了异步验证, 不妨输入admin试试.

因为是写出来解决自己问题的. 暂时还没写文档.. 内置的验证规则也不多. -0 -

不过验证规则很容易扩展, 不妨看看源码.

下面放出下载地址:

http://git.oschina.net/Adraix/valid_demo

[查看全文]
来打我呀
新浪接口查询ip所在地哦
展开Biu

首先:我们来使用一个经常见到的函数getip()来实现IP的获取:

[mw_shl_code=php,true] function getip(){

if (getenv(“HTTP_CLIENT_IP”) && strcasecmp(getenv(“HTTP_CLIENT_IP”), “unknown”))

{ $ip = getenv(“HTTP_CLIENT_IP”);

} else if (

getenv(“HTTP_X_FORWARDED_FOR”) && strcasecmp(getenv(“HTTP_X_FORWARDED_FOR”), “unknown”))

{ $ip = getenv(“HTTP_X_FORWARDED_FOR”);

} else if (getenv(“REMOTE_ADDR”) && strcasecmp(getenv(“REMOTE_ADDR”), “unknown”))

{ $ip = getenv(“REMOTE_ADDR”);

} else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], “unknown”))

{ $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = “unknown”; } return $ip;

} [/mw_shl_code]

第二步:将获取到的IP地址传递个新浪IP接口 利用一个常用的函数file_get_contents来获取其json格式的返回值,这样我们就可以实现IP地址与对应省份城市的转换;

[mw_shl_code=php,true]function getLocation($ip=”)

{ empty($ip) && $ip = getip();

if($ip==”127.0.0.1″) return “本机地址”; $api = “http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json& ip=$ip”; $json = @file_get_contents($api);//调用新浪IP地址库

$arr = json_decode($json,true);//解析json $country = $arr['country']; //取得国家

$province = $arr['province'];//获取省份 $city = $arr['city']; //取得城市

if((string)$country == “中国”){ if((string)($province) != (string)$city){ $_location = $province.$city; }else{ $_location = $country.$city; } }else{ $_location = $country; } return $_location;} [/mw_shl_code]

第三步:功能的实现

[mw_shl_code=php,true]echo getLocation(); //或者 echo getLocation(“222.210.4.66″);[/mw_shl_code]

[查看全文]
VOID001
原创 通过WordPress学PHP 入门级别PHP教程
展开Biu

本帖最后由 VOID001 于 2014-9-1 12:03 编辑

看这个文章前需要掌握的一些东西

1.C语言或者任何一门语言的编程基础

2.PHP的基本语法

3.没了 因为是新人教程,所以我会尽量详细的介绍WP的源码以及PHP的知识

这个文章是LZ用来学习PHP 以及Web开发的业余时间写的自己的源码学习笔记,由于本人第一次制作这种东西,难免有很多地方会给大家造成困惑。希望大家多多指出和批评

#22xHalo~ 本人技宅新人一枚,属于完全IT向 = =在搞ACM的业余也会学学PHP ,最近用WordPress搭了个blog ,感觉很不错~对于技术控来说,有一个好看的自己的blog神马的最幸福了,在享受WP的同时#22x 我就突然想到#28x我是不是可以通过学习WP的开源代码来学习PHP技术呢~~ 于是乎 ,就有了下面的这些文章 ,本人PHP新人 ,学生党,希望大神们多多指教,文中有不正确的地方,希望大家能给我指出来,批评也好提醒也好~你们的关注与指导就是给我最好的礼物~ 大家如果有没看懂的地方,欢迎提问 ,本人一定保证在看到提问后尽快回答 好了进入正题 PS:本文原文在我的blog 欢迎大家去坐坐~

开始学习研究开源代码 ,不过自己的PHP技术还很差 ,但是只要是有强大的搜索能力~ 以及一定的理解力 就可以呢{*≧∀≦}参考一下这个文章
那就从根目录的index.php开始解析代码~~
index.php
[mw_shl_code=php,true]<?php

/**

* Front to the WordPress application. This file doesn't do anything, but loads

* wp-blog-header.php which does and tells WordPress to load the theme.

*

* @package WordPress

*/

/**

* Tells WordPress to load the WordPress theme and output it.

*

* @var bool

*/

define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */

require('./wp-blog-header.php');[/mw_shl_code]


[color=rgb(98, 98, 98) !important]index.php

只有两句代码: 我们分别来看一下~~
define是PHP的定义常量的语法
define函数的用法 : define(NAME,VAL,CASE_SENSITIVE); 没有什么需要过多说明的地方 ,define函数就是定义一个常量 然后参数列表也很明确 ,注意的是 常量不需要加美元符号 ($)
require函数 : require(‘FILENAME’) 语句包含并运行指定文件。 如果文件不存在 ,报Fatal Error 也就是说 ,如果文件不存在 这个函数的报错会导致这个网页无法加载 ,这个特性在很多时候还会用到 与它功能差不多的还有一个 include函数 不同的是如果文件不存在,只会报一个WARNING。这两个看情况使用
当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
上面的代码既然调用了wp-blog-header.php那么我们下来就看这个代码~
wp-blog-header.php
[mw_shl_code=php,true]<?php

/**

* Loads the WordPress environment and template.

*

* @package WordPress

*/

if ( !isset($wp_did_header) ) {

$wp_did_header = true;

require_once( dirname(__FILE__) . '/wp-load.php' );

wp();

require_once( ABSPATH . WPINC . '/template-loader.php' );

}[/mw_shl_code]


[color=rgb(98, 98, 98) !important]wp-blog-header.php

这个代码也不是很难理解 一行一行一个函数一个函数分析~
isset函数 isset函数可以检测这个变量是否被定义了 用法 isset(var1,var2,var3…);其中第一个必须填
require_once函数 require_once(‘FILENAME’);
require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
dirname()函数 函数用法 dirname(string $path)给出一个文件的路径 ,返回这个文件所在的目录的绝对路径 而__FILE__这个常量 ,是 预定义常量 也叫 魔术常量 详细介绍在这里 这里就理解为wp-blog-header这个文件的绝对路径就好~
dirname(__FILE__) 取到的是当前文件的绝对路径,也就是说,比起相对路径,查找速度是最快的。

上面的代码通过require_once函数把wp-load.php的代码包含进来了~ 我们一会儿再去看那个代码 下面先继续看 :
下一个部分是wp()函数 ,这是自定义的函数,而且这个函数多的定义不存在与当前的这个文件里(wp-blog-header.php),是定义在其它文件里的

[查看全文]
Mr_Alex
Hibernate调用Oracle的存储过程
展开Biu

本帖最后由 Mr_Alex 于 2013-3-25 16:48 编辑

额,开头先扯点别的。。。

大家都知道在项目中过多的使用存储过程会降低应用程序的可移植性,但是为了一些这样那样的的原因,我们很多时候会不得不用到存储过程以获得较高的执行效率。虽然目前hibernate 已经添加了很多关于调用存储过程的支持,但是不得不说,还是有一些不尽人意的地方,对于对hibernate还不是很熟悉的童靴来说,这还有点难度~~所以今天跟大家分享一些关于 Hibernate调用Oracle的存储过程 的知识~

第一个存储过程:

[mw_shl_code=sql,true]

create Procedure proc()

begin

select * from proctab;

end;

[/mw_shl_code]

第二个存储过程:

[mw_shl_code=sql,true]

create procedure proc1(v_no number(4))

begin

select * from proc1

where id=v_no;

end;

[/mw_shl_code]

调用方法1:传统的 xml映射文件调用

[mw_shl_code=xml,true]

<!--xml映射文件 -->

<class name="com.test.User" table="proctab">

<id name="id" column="id">

<generator class="native"/>

</id>

<property name="name" column="name" type="string" />

<property name="age" column="age" type="integer" />

</class>

<sql-query name="getUser" callable="true">

<return alias="user" class="com.test.User">

<return-property name="id" column="id" />

<return-property name="name" column="name" />

<return-property name="age" column="age" />

</return>

{call proc()}

</sql-query>

[/mw_shl_code]

通过hibernate的API来调用以上的存储过程

[mw_shl_code=java,true]

// Hibernate API code

Session ss= HibernateSessionFactory.getSession()

List li=ss.getNamedQuery("getUser").list();

ss.close();

[/mw_shl_code]

调用方法2:通过JAVA的JDBC的API来调用

[mw_shl_code=java,true]

//jdbc 调用

Session session =HibernateSessionFactory.getSession();

Connection conn = session.connection();

ResultSet rs =null;

CallableStatement call = conn.prepareCall("{Call proc()}");

rs = call.executeQuery();

rs.close();

session.close();

[/mw_shl_code]

传递参数:

[mw_shl_code=java,true]

//传参1

CallableStatement call = conn.prepareCall("{Call proc(?)}");

call.setString(1, 参数);

rs = call.executeQuery(); [/mw_shl_code]

值得注意的是,因为这种方法是直接通过JAVA的JDBC来调用,这就破坏的hibernate的封装性,因此不被hibernate所支持,在hibernate3.3.2之前的版本中还可以通过getSession().connection()来获取一个Session对象,从而实现JDBC的调用。但是在hibernate3.3.2开始以后的版本中,hibernate就完全的丢弃了对这个方法的支持。

不过所幸的是它又提供了一个替代的方法doWork(Work work);Work是一个接口,我们可以通过实现此接口的方法,从而在其内部实现对存储过程的调用。

其实现代码如下:

[mw_shl_code=java,true]

public interface Work {

//直接通过JDBC API来访问数据库的操作

public void execute(Connection connection) throws SQLException;

}

//Session的doWork(Work work)方法用于执行Work对象指定的操作,即调用Work对象的execute()方法。Session会把当前使用的数据库连接传给execute()方法。

//过程如下:

Transaction tx=session.beginTransaction();

//定义一个匿名类,实现了Work接口

Work work=new Work(){

public void execute(Connection conn)throws SQLException{

//在这里写用JAVA的JDBC调用存储过程的方法

CallableStatement proc = null;

proc = conn.prepareCall("{ call procName(?,?,?) }");

proc.setInt(1, 100);

......

proc.execute();

......

}

};

//执行work

session.doWork(work);

tx.commit();

[/mw_shl_code]

调用方法3:直接使用hibernate的createSqlQuery调用

[mw_shl_code=java,true]

Session session =HibernateSessionFactory.getSession();

SQLQuery query = session.createSQLQuery("{Call proc()}");

List list =query.list();

session.close();

[/mw_shl_code]

hibernate的API调用时候传递参数

[mw_shl_code=java,true]

SQLQuery query = session.createSQLQuery("{Call proc(?)}");

query.setString(0, 参数);

List list =query.list();

[/mw_shl_code]

声明: 以上代码部分转自互联网,原文地址: http://www.cnblogs.com/jerryxing/archive/2012/04/28/2475762.html

写了这么多,有木有糖吃哇 @Whisper1166 @。咯咯君

该贴已经同步到 Mr_Alex的微博

[查看全文]
ApfelZaft
来跟我学习PHP姿势吧!PHP基础全民入门普及教程第一弹!
展开Biu

本帖最后由 ApfelZaft 于 2013-2-4 07:59 编辑

PHP基础全民入门普及教程第一弹!

Hi,电脑前的小盆友们大家好! 我是技术卖萌群的三味=。=

大家每天都上网,难道就不好奇为神马我们能看到如此多姿多彩的网页呢?为什么我点一下发布帖子就发出去了呢? etc.

作为主业是和网络打交道的苦逼码农,觉得普及普及网络相关的姿势还是很有意思的事情。

于是顶着压力准备从最基础入门开始,慢慢到后期一个一个具体的网页功能模块,来具体写一个PHP入门系列的教学。

虽然很多大神眼里PHP就是一个简单到不屑一顾的语言=。=嘛~我们是做实际应用的,实用,简单,易上手,成本低才是最优先考虑的,所以目前来说php无论在海内外还是使用率非常高的一款服务端脚本语言。 比如人所皆知的wordpress博客框架就是用咱们的php写滴~技术宅这个论坛用的Discuz论坛框架也是基于PHP~关于这些具体功能和框架怎么自己架设着玩,我以后会陆续的都讲到,那么,在不多说废话了,咱们开始我们的PHP之旅吧!

==================================================================

第一讲:PHP基本背景和相关概念

咳咳,我知道一上来就搞概念很多大小朋友们就想跳过了。不过想做网络应用的基础就是这些看似无聊的协议和概念~因为是基础,咱们从简来说说。

首先我要来讲一下网络应用(这里具体指网站)的基本原理

现在的网络应用几乎都是基于分布式多层应用结构(因为我学的都不是中文的教材=。=所以一些专业术语都是自己随便翻过来的,有错误务必指出,以后亦是如此),也就是把抽象的网络在逻辑上分了几个层次,每一个层都有自己的特定功能。这里我就粗略说一下。

一般一个网络应用分为3或4层架构(N-tier Architectures),分别是:

1. 呈现层(Presentation Layer), 也就是我们在自己电脑上看到的用户界面,一般指的是咱们的浏览器。负责收取咱们用户输入的信息,还有在屏幕上现实从服务器返回过来的结果。HTML就是在这一层使用的技术~

2. Business Logical Layer(商业逻辑层)这一层是整个网络应用的中枢系统,应用程序的主体和逻辑都布置在这一层(比如在购物网站购物车的功能,登录的功能,等等),一般就是网络服务器。我们要学习的PHP就是运行在这一层的脚本语言。

3. 数据层顾名思义,这一层主要是数据的管理,一般用到的就是数据库。比如Mysql。

下面我举个栗子来说明一下具体这三层是怎么运用在实际中的,还有咱们上网的真相是什么(篇幅原因,从简,有问题可以跟帖我具体解释)~

================我是栗子==================================

咱们打开浏览器,输入地址上了技术宅论坛(这一步涉及到地址解析等知识,在此不作详叙),第一件事就是要登录。

可以这么看,我们的浏览器就是一个客户端,技术宅论坛在租用的服务器上部署了服务端和数据库。

首先我们点击登录按钮,“登录”按钮包含的URL(统一资源定位符,也就是链接)信息通过HTTP协议给服务器发送了一个请求(实际的网络链接是通过传输层的TCP进行,HTTP为高一层的协议),服务器一直在通过一个固定端口(比如80)监听着有没有客户发来服务请求。如今服务器收到了来自我这个IP的请求,它知道了咱们想要登录,于是生成了一个登录页面(HTML语言),再通过HTTP协议和TCP把结果返回给客户端。客户端,也就是咱们的浏览器翻译出来这段HTML语言展示给我们,于是我们成功看到了登录的页面。

================我是栗子==================================

这就是一个最简单的网络应用的栗子,就想象成客户呼叫,服务端提供服务就好了~

为什么要说这些呢?因为PHP就是一个用在服务端的脚本语言(相对于javascript这种运用的客户端的脚本语言)。通过写PHP,我们可以动态控制用户看到的页面,给用户提供各种服务。可以说,你在这个论坛用到的几乎所有功能都可以用PHP来实现~

============================================================

结束了理论基础,我们终于开始进入正题了!!

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码。

PHP 语法非常类似于 Perl 和 C。PHP 常常搭配 Apache (web 服务器) 一起使用。不过它也支持 ISAPI,并且可以运行于 Windows 的微软 IIS 平台。

PHP 文件可包含文本、HTML 标签以及脚本。PHP 文件中的脚本可在服务器上执行。

您应当具备的基础知识在继续学习之前,您需要对下面的知识有基本的了解:

  • HTML / XHTML
  • 基础的脚本知识

这两个内容太基础了。。要是真有需要的同学可以提出来再开个教程=。=

那么,我们开始吧!

首先,是一些需要知道的东西。

什么是 PHP?

  • PHP 指 PHP:超文本预处理器(译者注:PHP: Hypertext Preprocessor,递归命名)
  • PHP 是一种服务器端的脚本语言,类似 ASP
  • PHP 脚本在服务器上执行
  • PHP 支持很多数据库(MySQL、Informix、Oracle、Sybase、Solid、PostgreSQL、Generic ODBC 等等)
  • PHP 是一个开源的软件(open source software,OSS)
  • PHP 可免费下载使用

什么是 PHP 文件?

  • PHP 文件可包含文本、HTML 标签以及脚本
  • PHP 文件向浏览器返回纯粹的 HTML
  • PHP 文件的文件后缀是 ".php"、".php3" 或 ".phtml"

什么是 MySQL?

  • MySQL 是一种数据库服务器
  • MySQL 支持标准的 SQL
  • MySQL 可在许多平台上编译
  • MySQL 可免费下载使用
  • PHP 与 MySQL 的组合是跨平台的(意思是您可以在 Windows 环境进行开发,而在 Unix 平台上提供服务)

从何处开始?

  • 在 Windows 或者 Linux 机器上安装 Apache 服务器
  • 在 Windows 或者 Linux 机器上安装 PHP
  • 在 Windows 或者 Linux 机器上安装 MySQL

为了即学即用,我推荐大家使用整合了PHP+Mysql+Apache的便携式环境。比如我使用的就是WampServer。只要简单的安装,就可以使用PHP+Mysql+Apache的环境了。不用自己分开下载安装以及配置。对新手来说配置就可以纠结很久了=。=

一. 下载安装WampServer

大家可以在http://www.wampserver.com/en/#download-wrapper 下载最新版本的WampServer。软件里自带中文,所以大家有福了~

1. 首先根据自己的实际需要选择版本下载,注意64位和32位系统区别。之后安装,这里就不截图了=。=

2. 安装完之后咱们双击运行~在系统小图标栏就会出现这个: 图标。 右键点击它可以选择语言和帮助文件,请选择中文吧~

3. 之后鼠标左键我们可以看到许多的选项,我们点击启动所有服务。图标就会变为绿色。(离线是指服务器变为本地状态,不对外开放)

:如果Apache无法启动,请先退出占用80端口的软件,启动workstation和DNS Client服务,网络协议安装Microsoft网络客户端,如果还不能启动,就到你的连接名-属性-网络-Internet协议-属性-高级-WINS-导入LMHOSTS—你的apache的httpd.exe地址(一般为wamp\bin\apache\bin\httpd.exe)就可以了

(根据X-Force的经验,迅雷、电驴、QQ音乐等程序均会占用80端口哟)

好了~到这一步为止,咱们就算是成功架设并且开启了服务器环境,接下来只要写好PHP程序,放到wamp的www目录下,就可以在浏览器中通过http://localhost 的方式来本地访问了~

基本的 PHP 语法PHP 的脚本块以 <?php 开始,以 ?> 结束。您可以把 PHP 的脚本块放置在文档中的任何位置。

当然,在支持简写的服务器上,您可以使用 <? 和 ?> 来开始和结束脚本块。

不过,为了达到最好的兼容性,我们推荐您使用标准形式 (<?php),而不是简写形式。

接下来我们进入刚才Wamp安装目录下面的www文件夹,新建一个.php文件,然后用自己喜欢的文本编辑器打开~(新手可以使用Notepad++,我后天会教大家配置使用IDE,虽然我自己不喜欢=。=)

PHP 文件通常会包含 HTML 标签,就像一个 HTML 文件,以及一些 PHP 脚本代码。

在下面,我们提供了一段简单的 PHP 脚本,它可以向浏览器输出文本 "Hello World":

[mw_shl_code=php,true] *本站禁止HTML标签噢*

*本站禁止HTML标签噢*

<?php

echo "Hello World";

?>

</body>

</html>[/mw_shl_code]

PHP 中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。

有两种通过 PHP 来输出文本的基础指令:echo 和 print。在上面的例子中,我们使用了 echo 语句来输出文本 "Hello World"。

把这段hello world写入你的php文件,保存。

然后打开浏览器(确保你已经运行了WampServer并且启动了服务),输入http://localhost/ 看看是不是这样~

Your Projects里面就是你www目录下所有可以运行的项目和程序,应该可以看到你刚才自己写的php文件,点击它看看~

或者直接浏览器输入

http://localhost/{你的文件名}.php 也是一样的效果。

有没有看到Hello World呢? 恭喜你已经运行了第一个php程序~

php还需要控制数据库,Wamp使用的是Mysql~咱们来给自己加建立一个数据库账号吧。

还是左键那个Wamp的图标。

控制Mysql数据库,选择PHPmyAdmin(一款网页版的用于管理MySQL数据库的程序)

点击添加新用户,我们增加一个数据库的用户

按照我的设置,用户名和密码随意,我的就是123 123。这时我们就可以在本机安装一些常用的PHP程序来玩玩了,例如WordPress,又或者一个Discuz论坛。现在我们以discuz为榜样,试验一下,Discuz安装前还要小小的设置一下,Php-php设置-勾选short open tag

下载Discuz http://www.discuz.net/,解压,将discuz的upload文件夹里的所有文件复制到wamp的www目录下(直接复制upload就可),在浏览器访问 http://localhost/upload/install/index.php,这时就会出现discuz的安装界面了,点击我同意-检测通过,出现:

数据库用户名和密码按照上面的设置,下面的是Discuz管理员用户名,密码随便,点击“填写完毕,进行下一步”。就会出现安装完成的界面,好了!我们成功地在Windows本机上建立起一个自己的论坛了,总体的步骤都是非常简单的。

大家有兴趣可以试试看~

尽管可能新手朋友并不了解里面所有东西都是些什么,有什么作用,但我们起码能通过WAMP搭起一个论坛了。有点成就感后再慢慢深入学习也不错的嘛。WAMP类软件对于懒人、对于初入门者的意义还是不轻的,起码,对于初入门者,它能把入门的路铺平一点了。

另外补充一些WAMP的应用:除了用于学习PHP开发外,你还可以在本机搭建一个WordPress写自己的私人日记,建一个私人/局域网的论坛或者博客用作资料储存库,建立用于折腾的试验网站,如专门用来测试WordPress插件、皮肤的博客,又或者测试任何PHP网站程序……

==============================================================

看了一下时间已经凌晨一点了=。=才写到这里。。效率啊效率=。=明后天还有考试,我先缩下水,大后天补回来。

这是第一次写这样的教程,必须有各种问题…嘛…有什么欢迎跟帖指正!

我发现这是个大坑#38t~~要花时间慢慢写了~~

这一期主要是讲一点最最最基本的网络应用概念还有让大家熟悉一下,亲手跑几个PHP的程序感受感受。

下节课开始进入正题,从语法开始(语法和其他面向对象语言差不多,不会特别详述~),把PHP几个最基本和最常用的功能讲一下。

在大概3次左右的入门贴之后,就准备分功能模块来讲PHP。比如网上博客文章那么多,分页浏览是怎么实现的;留言板怎么做;怎么用PHP上传处理图片或多媒体之类~~我也正在学习,所以大家一起教学相长吧!!

PS:纯手工土制教程。。才发现写个贴好累=。=里面一些图片是我偷懒直接网上截的~还有少部分的概念也就不用自己的话写了~大家有问题欢迎提问~

我们下节课再见!

[查看全文]
基叔
填坑。来一起玩儿cocos2d-html5吧 (三)
展开Biu

本帖最后由 基叔 于 2013-10-12 20:12 编辑

填坑向.

三,开始我们的项目

删掉 Asteroid 目录 res 中所有的文件,复制并黏贴 Asteroid.png进去

这一步是为了将我们所用的图片等资源声明

修改src目录下的resource.js文件,如下

[mw_shl_code=javascript,true]var s_Asteroid = "res/Asteroid.png"; //小行星

var s_Ship1 = "res/Ship1.png";

var s_Ship2 = "res/Ship2.png";

var g_ressources = [

{src:s_Asteroid},

{src:s_Ship1},

{src:s_Ship2}

];[/mw_shl_code]

src 目录 删除 myApp.js .并新建 GameScene.js ,AsteroidSprite.js

这一步是为了将我们所用的GameScene.js等加载

cocos2d.js 文件中 找到 appFiles 几行,并修改如下

[mw_shl_code=javascript,true]appFiles:[

'src/resource.js',

'src/GameScene.js',

'src/AsteroidSprite.js'

][/mw_shl_code]

再将main.js 最后一行改为

[mw_shl_code=javascript,true]var myApp = new cocos2dApp(GameScene);[/mw_shl_code]

#将主场景设定为我们需要的场景

最近又有空了,来填坑

[查看全文]
wis
通过php获取百度百科词条的真实链接的方法
展开Biu

本帖最后由 wis 于 2013-2-12 20:56 编辑

今天本来想写个php脚本通过键入中文来获取指定词条的内容,却发现实现起来并不太简单。#36m

百度百科词条的URL都是为 http://baike.baidu.com/view/数字.htm ,URL跟词条内容并无直接联系;而通过百度搜索获取到的都是 http://www.baidu.com/link?url=iigPGJqjJ4zBBpC8yDF8xDhiqDSn1JZjFWsHhEoSNd85PkV8Xil-wx2n0K 之类的URL,显然是被加密过的,百度的防抓取工作还做的挺充分。

上网找了下资料,发现可以对百度百科 searchword.php 的这个搜索程序入手。对 searchword.php 输入要搜索的字符(词条标题),而指定的词条存在时,它就会自动跳转到词条的真实地址。

[mw_shl_code=php,true]<?php

/*

** 以下代码适合脚本在UTF-8编码下执行,若在其它编码下执行请依照注释作出适当修改

*/

function geturl($string){

$string = iconv('utf-8', 'gbk', $string); //将字符转换成GBK编码,若文件为GBK编码可去掉本行

$encode = urlencode($string); //对字符进行URL编码

$url = 'http://baike.baidu.com/list-php/dispose/searchword.php?word=' .$encode. '&pic=1';

$get_contents = file_get_contents($url); //获取跳转页内容

$get_contents = iconv('gbk', 'utf-8', $get_contents); //将获取的网页转换成UTF-8编码,若文件为GBK编码可去掉本行

preg_match("/URL=(\S+)'>/s", $get_contents, $out); //获取跳转后URL

$real_link = 'http://baike.baidu.com' .$out[1];

return $real_link; //输出真实地址

}

echo geturl('互动百科'); //输出http://baike.baidu.com/view/1466380.htm

?>[/mw_shl_code]

运行上面的代码,脚本就会自动获取到词条的真实地址,即可接着进行抓取词条内容或其他的操作了。

同时也欢迎到我的博客http://wislab.net/参观指导噢~~37!

[查看全文]
fenxer
利用almp在安卓机上搭建本地php服务器环境
展开Biu

先预览一下最后的大家成功的结果图吧~本地的一个初始简单的wordpress、#7126!原谅我的渣UC~


Linux大神请灰过吧~@@25!!

整个过程很简单、很多代码脚本都已经编写完毕了、大家要做的只是输入终端模拟器命令进行安装即可~

LZ只是从别的地方淘来的并作了亲测感觉不错拿来分享而以哦~@@22!!

为了防止分页造成的杯具、先把附件贴出来~

本内容已隐藏,回复后刷新可见哦


首先下载附件、解压出来会看到以下几个文件~把这几个货扔到爪机(平板)的SDcard根目录里(扔到其他地方也可以、我是为了方便~)

里面有很多东西、我先大概说明一下@@16!!

ddns.apk→DDNS、动态域名服务~适用于自己建服务器解析域名~不过本地调试一般就127.0.0.1或者localhost了吧、(这里顺嘴提一句有的无节操浏览器不支持解析localhost哦、)

install.sh→喜闻乐见的安装脚本

lmp.tar.bz2→Linux里常用的压缩格式、是安装必需文件(糗、、落个a、意思意思就行了)

remove.sh→顾名思义、卸载用的

sshserver.apk→远程登录。。在此教程里没啥用、不过你可以干别的、wifi局网里什么的。。。

Term.........apk→太长不打了、终端模拟器不解释了。


打开终端模拟器(PS:事先要安装“BusyBox”的说。。。)

输入以下命令:

[mw_shl_code=applescript,true]$ su

# cd /

# mount -o remount,rw /system

# tar xf /mnt/sdcard/lmp.tar.bz2

# mount -o remount,ro /system

# exit

$ exit[/mw_shl_code]

前提要有root权限啊~


安装完毕、再次打开终端模拟器、准备开启服务环境

输入以下代码

[mw_shl_code=applescript,true]$ su

# almp-start.sh

# exit

$ exit[/mw_shl_code]

要关闭环境时、把上面的start换成stop就行了


好了、打开浏览器吧(不推荐自带那货)@@20!!

输入127.0.0.1或者localhost

即可出现一个php小指针~详细参数如下二图~

接下来就是管理MySql了。。。软件本身不自带phpMyAdmin、因为那货版本更新快、自己到官网下载即可。。。

注意、phpMyAdmin默认不支持空密码登录、自己到目录里的library文件夹里的config.default.php修改空密码为true即可、或者直接添加密码也可、具体的配置文件怎么配置不在这里说了、自己谷歌百度去。。。。。@@21!!

然后从电脑里顺手拖出wordpress这萌货~放上去~很好~没有傲娇~


最后网站效果见1L图。。。

====================

鉴于手机浏览器对HTML5和CSS3的渲染效果远次于桌面版本、所以下载个php编辑器自己捅咕php得了。。。@@30!!

====================

顺嘴说一句、那个config.default.php文件修改建议先改后缀txt再用别的文本编辑器代开编辑、RE管理器自带的卡出翔了哦!@@14!!

2013年手机屏幕进入5寸时代、再加上intel也要在移动领域掺上一脚~相信未来终端会更加强大!mobile和desktop的距离在一步步缩进~#7069!


好~到这里先收工吧~这里的大神比较多~再加上俺才疏学浅、如有疏漏之处前请多多见谅~#6956!说到底我还是个新人啦啦啦~

[查看全文]