Browsed by
Month: August 2014

WordPress 源码学习 #01

WordPress 源码学习 #01

接着 #00 来继续写 ,我们上一期看到wp-blog-header那个文件 ,里面包含了wp-load 和 template-loader.php 我们按照顺序先来看 首先我们先自己测试一下 include 和 require的区别  根据这段实例代码 <?php echo “<h1>”.”INCLUDE 1″.”</h1>”; require(‘./include1.txt’); echo INC; echo “<h1>”.”INCLUDE 2″.”</h1>”; include(‘./include2.php’); echo INC ?> 其中 ,INC是在include2.php内定义的常量,  有人说  inlcude和require的一个区别是 include会把文件包含在整个代码的最前面 ,而require不会 ,按照他的说法 ,这个代码运行的时候运行到底一个echo INC 就应该输出了  INC的值 可实际上  运行结果是未定义的常量  ,所以 ,这个说法是错误的  include 和require 都是在运行到这里的时候,才会把文件包括进去,而不是在一开始就包括进去 。 下面测试一下  ,如果require的文件不存在会怎样 把sample.php的第一个require的文件名改为 mengmengda.php(这个文件真的不存在哦~)  我们得到了这样的错误报告 Fatal error: require() [function.require]: Failed opening required ‘./mengmengda.php’ (include_path=’.;C:php5pear’) in F:WAMPwwwwplearnindex.php on line 4 果然是个FatalError  我们再试试把include的改为  mengmengda.php index.php文件正常显示,除了报了两个警告以外,没有其它的问题  ,看来这就是include和require的区别了 ~ 下面我们继续研究wp-blog-header.php里面require的那几个 ,首先深入研究wp-load.php 这段注释里面已经说明了,这个代码做了什么  来看一下注释: /** * Bootstrap file for setting the ABSPATH…

Read More Read More

WordPress 源码学习 #00

WordPress 源码学习 #00

开始学习研究开源代码 ,不过自己的PHP技术还很差 ,但是只要是有强大的搜索能力~ 以及一定的理解力 就可以呢{*≧∀≦}参考一下这个文章            PHP函数库在这里 那就从根目录的index.php开始解析代码~~ index.php <?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’); 只有两句代码: 我们分别来看一下~~ define是PHP的定义常量的语法 define函数的用法 : define(NAME,VAL,CASE_SENSITIVE);  没有什么需要过多说明的地方 ,define函数就是定义一个常量  然后参数列表也很明确…

Read More Read More

DP题目列表

DP题目列表

转载非原创 ※最近更新:Poj斜率优化题目 1180,2018,3709   列表一:经典题目题号: 容易: 1018, 1050, 1083, 1088, 1125, 1143, 1157, 1163, 1178, 1179, 1189, 1191,1208, 1276, 1322, 1414, 1456, 1458, 1609, 1644, 1664, 1690, 1699, 1740, 1742, 1887, 1926, 1936, 1952, 1953, 1958, 1959, 1962, 1975, 1989, 2018, 2029, 2039, 2063, 2081, 2082, 2181, 2184, 2192, 2231, 2279, 2329, 2336, 2346, 2353, 2355, 2356, 2385, 2392, 2424, 不易: 1019, 1037, 1080, 1112, 1141, 1170, 1192, 1239, 1655, 1695, 1707, 1733(区间减法加并查集), 1737, 1837, 1850, 1920(加强版汉罗塔), 1934(全部最长公共子序列), 1964(最大矩形面积,O(n*m)算法), 2138, 2151, 2161, 2178, 推荐: 1015, 1635, 1636(挺好的), 1671, 1682, 1692(优化), 1704, 1717, 1722, 1726, 1732, 1770, 1821, 1853, 1949, 2019, 2127, 2176, 2228, 2287, 2342, 2374, 2378, 2384, 2411 列表二:完整DP题目列表 1015 Jury Compromise 1029 False coin 1036 Gangsters 1037 A decorative fence 1038 Bugs Integrated, Inc. 1042 Gone Fishing 1050 To the Max 1062 昂贵的聘礼 1074 Parallel Expectations 1080 Human Gene Functions 1088 滑雪 1093 Formatting Text 1112 Team Them Up! 1141 Brackets Sequence 1143 Number Game 1157 LITTLE SHOP OF FLOWERS 1159 Palindrome 1160 Post Office 1163 The Triangle 1170 Shopping Offers 1178 Camelot 1179 Polygon 1180 Batch Scheduling 1185 炮兵阵地 1187 陨石的秘密 1189 钉子和小球 1191 棋盘分割 1192 最优连通子集 1208 The Blocks Problem 1239 Increasing Sequences 1240 Pre-Post-erous! 1276 Cash Machine 1293 Duty Free Shop 1322 Chocolate 1323 Game Prediction 1338 Ugly Numbers 1390 Blocks 1414 Life Line 1432 Decoding Morse Sequences 1456 Supermarket 1458 Common Subsequence 1475 Pushing Boxes 1485 Fast Food 1505 Copying Books 1513 Scheduling Lectures 1579 Function Run Fun 1609 Tiling Up Blocks 1631 Bridging signals 2分+DP NLOGN 1633 Gladiators 1635 Subway tree systems 1636 Prison rearrangement 1644 To Bet or Not To Bet 1649 Market Place 1651 Multiplication Puzzle 1655 Balancing Act 1661 Help Jimmy 1664 放苹果 1671 Rhyme Schemes 1682 Clans on the Three Gorges 1690 (Your)((Term)((Project)))…

Read More Read More

BNU Contest 8-28 A

BNU Contest 8-28 A

A. Magic Number Time Limit: 2000ms Memory Limit: 32768KB 64-bit integer IO format: %lld     Java class name: Main A positive number y is called magic number if for every positive integer x it satisfies that put y to the right of x, which will form a new integer z, z mod y = 0. Input The input has multiple cases, each case contains two positve integers m, n(1 <= m <= n <= 2^31-1), proceed to the end of…

Read More Read More

集训结束

集训结束

这个假期的ACM集训就这么结束了 ,说实话形式很坑,不过和队友一起做题还是很棒的,最后一次比赛的题目几乎全是DP对DP无力的我们顿时感觉到什么叫DP大法好 = =这次开始一定要好好做DP了。

[MC][MCRedStone]红石教程01 初级红石电路

[MC][MCRedStone]红石教程01 初级红石电路

直接有中文版的教程 下面是我的学习笔记 以下是红石电路图例:  名称为 “MC红石模拟”(MCRS) 可以表示两层电路 多层电路就会用若干张”MC红石模拟” (MCRS)图来表示  或者动画   与或非门 或门 问题   这个图例的D图看不懂 ,我按照如下所示摆放 可是效果不对 现在处于卡壳中 。。。 请教了好几个大牛 ,终于知道这D是侧视图,而不是俯视图  以后看到电路如果是把电线画在了下面 ,那么 下面是做好的电路图 ,我采用了先填充了所有的方块然后按照图纸一个个挖掉的形式制作的 与门 , 这个图例也有点坑  A图的摆放 那两个点点是红石火把 不是红石线 。。虽然能理解 ,不过感觉看着别扭 A图

用Sina App Engine SAE开发微信平台 0

用Sina App Engine SAE开发微信平台 0

最近在用SAE开发自己学校社团的微信平台 ,PHP代码写的,由于刚刚接触微信平台 ,如何回复用户的消息就弄了半天,模拟登录什么的现在还没搞出来,只做了最简单的关键字回复和SQL调用 被动回复文本功能 首先总结一下微信的回复功能  微信的官方文档上的介绍 对于每一个POST请求,开发者在响应包(Get)中返回特定XML结构,对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。请注意,回复图片等多媒体消息时需要预先上传多媒体文件到微信服务器,只支持认证服务号。 如下是一个特定的XML结构 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml> 微信平台的回复消息不能简单的通过echo来回复 ,要通过如上所示的特定XML包来进行回复。 如下是一段回复文本的示例代码 public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS[“HTTP_RAW_POST_DATA”]; //extract post data if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, ‘SimpleXMLElement’, LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $frommsgType=$postObj->MsgType; $keyword = trim($postObj->Content); $time = time(); $textTp = “<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>”; if(!empty( $postStr )) { $msgType = “text”; $contentStr=checkType($frommsgType,$postObj); $resultStr=sprintf($textTp, $fromUsername, $toUsername,$time, $msgType,…

Read More Read More

配置vim使其拥有自动添加程序文件头功能

配置vim使其拥有自动添加程序文件头功能

在Coding的时候 (for example C++) 大家肯定希望能够编辑器直接自动完成所有程序都需要的部分代码 比如 这一部分 /*************************************************************************     > File Name: F.cpp     > Author: VOID_133     > QQ: 393952764     > Mail: [email protected]     > Created Time: 2014年08月26日 星期二 13时02分12秒  ************************************************************************/ #include<iostream> #include<algorithm> #include<cstdio> #include<vector> #include<cstring> #include<map> #include<queue> #include<stack> #include<string> #include<cstdlib> #include<ctime> #include<set> using namespace std; 甚至还想要把程序的创建时间和创建人以及文件名的注释头也自动完成 ,vim的话可以轻松的实现这个功能   vim这个文本编辑器支持很多强大的功能及插件 ,我们可以通过修改.vimrc文件来实现很多我们想要的功能 vimrc可以配置在多个地方,可以配置在你自己home的目录下 ,也可以配置在 /etc/目录下 前者的配置是局部配置 ,仅对你一人有效, 后者的配置是全局配置 ,对使用这个电脑的所有人有效,不过要注意的是,如果你在自己的home下配置了.vimrc那么你的vim的配置就是你home目录下的.vimrc而不是全局的,只有当home下没有的时候 才会去找全局的 即/etc/下的.vimrc这个功能也很合理 ,自己可以对自己使用的vim进行个性化配置 下面说明如何配置自动添加如上所示的头: 先上配置文件 autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec “:call SetTitle()” “”定义函数SetTitle,自动插入文件头 func SetTitle() “如果文件类型为.sh文件 if &filetype == ‘sh’ call…

Read More Read More