新浪二手房(房友集团)php程序笔试题C卷20110221

1. 打印出前一天的日期 ,格式如 2011-02-21 18:52:12

2.count (‘abc’);

3 .
$a = 10;
$b = ‘a’;
$c = $$b*5;
问 $c 等于多少?

4.
class mysqlcalss {

function t (&b ) {

$b = $b*5;
return $b;
}
}

$a = 10 ;
$b = mysqlclass ();
$set = $b->t ($a);
$c = $a;

问 $set ,$c 的值是什么?

5.写一个函数,把 函数array (2,1,5,29,108,91) 按从小到大的顺序排列起来;

6.说说赋值与引用的区别

7. 写出你一般怎么 优化 mysql 数据库

8. 说说你对大流量网站采用的处理方法。

9.怎样得到 http://www.baidu.com 的页面内容

10怎样实现中文截取无乱码?

11.怎样判断 php 的执行效率 和 mysql query 执行效率

12.
说说 inner join ,left join , right join 的区别

13.
user 中有 uid realname
userinfo 中有uid ,name ,pic1,pic2
关联字段为uid

1.查出 user 表中 realname 重复的 记录
2.把userinfo 表中 name 的名字 修改成 user 表中的 realname
3.查出 pic1,pic2中图片类型相同的记录

14.
1.创建一个表 ,有 房产名、所在区、多少钱,是否可以租
2.用php,smarty,js 写出它的增删改查
3.插入多条记录,写出分页程序


apache 提示You don’t have permission to access /test.php on this server.怎样解决

今天在新的linux上跑原来的代码,使用的虚拟主机的模式进行操作。几个相关的网站放在一个文件里,想法是通过网站列出的目录进行相应的网站进行操作。一切设置完成后,在浏览器中运行出现在You don’t have permission to access / on this server. 提示。查了一下apache手册找到问题所在处。这里定义了默认对网站根的访问权限。

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

这里改成

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

问题解决


如何解决ecshop中jquery和transport之间的冲突

要在ecshop中使用lightbox,lightbox是用的jQuery,但在使用的时候有冲突:

Message: Object doesn't support this property or method
Line: 608
Char: 13
Code: 0
URI: http://localhost:8094/js/transport.js

在网上找了一下,解决方案如下:
把ecshop中的transport.js中的Object.prototype.toJSONString方法(大概在587行)注释掉,因为就是这个方法和jquery冲突了。
再找一个替换的方法,加在transport.js的最后:

function obj2str(o){   
    var r = [];   
    if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";   
    if(typeof o =="undefined") return "undefined";   
    if(typeof o == "object"){   
        if(o===null) return "null";   
        else if(!o.sort){   
            for(var i in o)   
                r.push("\""+i+"\""+":"+obj2str(o[i]))   
            r="{"+r.join()+"}"  
        }else{   
            for(var i =0;i<o.length;i++)   
                r.push(obj2str(o[i]))   
            r="["+r.join()+"]"  
        }   
        return r;   
    }   
    return o.toString();   
}

事情还没有完呢,要把程序中所有用到toJSONString的地方用obj2str去替换,查找文件:*.js;*.dwt;*.lbi中的toJSONString字符串,用obj2str去替换。


linux命令行执行php代码遇到的错误

/usr/local/php/bin/php /server/www/test/file1.php

提示以下错误时的解决方法

/usr/local/php/bin/php: /usr/local/lib/libpng12.so.0: no version information available (required by /usr/local/php/bin/php)

解决方法就是

cd /usr/local/lib

mv libpng12.so.0 libpng12.so.0.backup

ln -sf /usr/lib/libpng12.so.0 libpng12.so.0

这就是libpng默认安装的时候会出现的一些问题


关于JSQL的一点疑问

有一个问题, 这个原理是用ajax 把 写在js 端的SQL 提交到server端,把返回的数据转化成JS的对象返回的。但是有一个严重的问题,你的数据库用户名密码是在JS端,页面是明文的,这不是相应的危险啊。


郭建龙:纪念一位消失的淘宝店主

与淘宝一起成长起来的肖安娜,最终被冠以售假的罪名进了监狱,一个五皇冠的网店、在顾客中口碑颇佳的地方,迅速消失了,所有的客流、所有的订单、所有的梦想、所有员工的生计都一去不复返,这个网店甚至连一点残渣都没有留下

网易科技专栏作者 郭建龙

谁还记得肖安娜,那位充满了梦想、却又身陷囹圄的肖安娜?

2009年8月,一位乐观的80后创业女孩儿在一次访谈中谈道:为了更好的明天,为了体现自身的价值,为了我那一大家子员工,我别无选择……套用马云先生的一句话;“今天很残酷,明天更残酷,后天很美好,我们绝不能死在了后天的凌晨。”但我坚信,平凡人也能创造神话。

但一年多以后2010年12月,这位女孩已经和丈夫(抑或男友?)一起被上海警方移送起诉,等待着未知的命运。

这个女孩儿就是肖安娜,乐观的她绝对想不到,这个世界的残酷超过了她的心理准备,对她的惩罚竟然如此严厉。

她曾经以她的员工为自豪,员工也曾以她为骄傲。同样是一年前,一位员工说过:“这里是我的第一份工作,我生活得很好,也很踏实,我也很喜欢这个地方,所以我选择和安娜共进退!”

但如今,女孩店内的几十名员工都已经散去,即便他们希望同进退,但覆巢之下已无完卵,缺乏了收入,又怎能撑得住?

她曾经崇拜的马云又如何?她的店铺又如何?

针对此次风波,马云的表态是:我很冤枉,淘宝不生成假货,是社会上生成假货在淘宝上容易被发现而已,我没有办法把这个假货打掉,因为我不是执法机构,我没有办法把他关到监狱里。

当然,虽然他没有办法把肖安娜送入监狱(这得由上海警方完成),但他却可以做到——迅速关闭了肖安娜的网店,一个五皇冠的网店、在顾客中口碑颇佳的地方,迅速消失了,所有的客流、所有的订单、所有的梦想、所有员工的生计都一去不复返,这个网店甚至连一点残渣都没有留下。

我不认识肖安娜,却可以根据网络上的线索勾勒出这个女孩子的奋斗史,我无意说她没有错误,但这个女孩的结局也许说明这个社会真正的弱势群体在哪里,他们如何在夹缝中生存却被挤扁。

肖安娜的梦想

我们对于肖安娜的认识来自于宋小林(网名上海伟雅)的专访。

在淘宝产业链上,除了最辛苦的广大店主之外,还有一些吃软饭但是活得无比滋润的人,宋小林就是其中之一。

他围绕着淘宝写了十本书,全都是网店赢家、网店成功秘笈之类,并依靠着这些类似软文的书籍获得了阿里巴巴的认可,成了名人。在肖安娜处于事业上升期的时候(2009年8月),宋小林对她进行了一次采访,又写了连载故事《皇冠店主肖安娜和她员工的故事》,这是我们能够获得的关于肖安娜的最详细资料。

写完连载后,心潮澎湃的宋小林(姑且认为他不是为了钱,也不是虚伪)又连忙写了一篇《安娜管员工,一读一肃然》的文章,为肖安娜的管理故事继续鼓吹。

肖安娜出事后,自然也跌出了成功网商的行列,至今,没见宋小林再说话,他大概正在和其他成功人士喝茶,罪犯不在他的关注之列。

我们利用宋小林的采访还原一下肖安娜的梦想:

2000年,一位来自湖北的女孩子到上海求学。在读书之余,她在易趣上开了个小店,很快,已经能够做到每天发20多单,每月的收入达到3000到5000元。

2004年,这位女孩毕业那年,当时也是淘宝上线刚一年左右,正在开展与易趣的战争,女孩在淘宝也开了一个店。可以说,她是与淘宝网一起成长的。很快,两个店已经可以达到每天100单了。

于是,网商成了女孩的事业,当易趣网衰落之后,她把精力都投入到了淘宝上,把自己的命运和淘宝彻底绑在了一起。

在2007年接受访谈的时候,她的网店已经有了30位员工,其中22位女生,这些人分别来自安徽、四川、江西、湖南、湖北等地。在政府一直把失业人数掖着藏着的时候,女孩的确为政府解决了30人的就业问题。

宋小林的采访还给我们透露了更多的、关于她管理哲学的信息。虽然我个人不见得赞同她关于像母亲般关注员工的理念,认为那是婆婆妈妈,我更相信市场。但是,宋小林的采访透露出,她的员工对她是十分满意的,如今找个工作不容易,碰到个好老板更不容易。

女孩告诉宋小林,员工在她那儿是免费吃住的,甚至还有零食,此外,工资水平也比同行要高一些。

宋小林还采访了其他员工,得到的消息都是正面的,这些员工大多以赞扬为主。

女孩的管理理念感染了宋小林,他评价说:安娜所以会这样做,并不因为她在实践一个管理大师的模式,我觉得,更多的原因,是肖安娜对人性的了解和关注,即便员工来自偏远他乡,她首先是把员工看成是期待在大城市要生活下来要有发展的“人”,而不再是可以召之即来挥之即去的“劳动力”。

女孩是个乐观向上的人,她相信通过自己的努力和打拼,可以创造出一片未来。除了本文开头引用的那段话之外,她还勾勒了未来的计划:到2010年,肖安娜(精衣求精)要打造自己的品牌,打入B2C及各大商场,前期打算价值100万广告线上线下进行品牌推广。

但她没有透露品牌风格及品牌理念,而是暂时保密,吊一吊大家的胃口。

但这一切都已经成了昨日之梦,她再也没有时间实现自己的梦想了。

剿灭肖安娜

关于“肖安娜集团”的覆灭,出手的角色众多,我首先根据已有的资料,叙述一下打击的经过。

在CCTV报道肖安娜被打掉之前的一个月,当她还在上海和员工们埋头发货的时候,2010年11月9日,遥远的北京正在举行一次知识产权对话,对话的主持人是美国大使洪博培,参加者包括了中方知识产权界的各位官员以及企业。在西装革履和觥筹交错中双方你来我往进行着博弈。

9天后,在更遥远的华盛顿,中美知识产权副部级会议召开,据称又达成了多项共识。

当然,这只是中美知识产权博弈的一个延续而已,这样的会议每年都会召开很多。

然而,在每年的博弈之前,中方都有一个拿手好戏,就是开展运动式的打击活动。每一年专项行动持续的时间从三个月到半年不等,每次行动的名称都是一长串,让人难以记住,打击的对象多是街头卖碟的小贩,或者一两个网站、工厂、甚至个人,每一年的打击成果都会高调进行宣传,在行动中被抓获的人们则会被从严处理,彰显我国对于知识产权的保护力度,却从不在意法律之严酷。

今年的打击形势更加严峻,行动从10月开始,持续到明年的2月份。行动领导小组的组长是副总理级别,成员包含国务院下属的近三十个部委机关。

然而,真正执行的却是各地方的公安系统,到了行动期,则是各地公安的活跃期,谁都知道,这段时间表现积极一点儿,对于升官大有好处。雄心勃勃的人自然钻破脑袋也要找到案子去侦破。

这些年的侦查员已经知道,如果要破获大案,就要靠网络,一是网络上想找个案件很容易,随手抓就行,二是网络对于破案来说,是一块处女地,更容易造成轰动,也更容易在这个领域成为专家,受到领导重视。与费尽心力去抓街头小贩相比,网络是更具有油水的地方。

于是英雄出场了,这位急于立功的董存瑞叫陈松,属于上海市公安局经侦总队。虽然以后有媒体对此进行了大力的炒作,但是熟悉网店的人却知道,陈松干的事情最简单不过。他登录了淘宝,找了家商店买了两件商品,再证明这两件货是假货。

凭着这次检验报告,突袭了这家淘宝商店。

在上百万的网店中,肖安娜不幸成为了牺牲品。我不知道是否她的货全是假的,但至少警方是这么说的。肖安娜已经身陷囹圄无法申辩了,等待她的自然是严惩。

这件事情引起注意,是最近一个星期左右的事情。

当中央电视台在新闻中以政府的成绩把这个小小的网店推向祭台时,已经经过了无数次包装:陈松不出所料地成为了英雄,肖安娜成为了贩卖假货的典型。曾经号召全民开网店的马云迅速行动,抛弃了伴随淘宝一起成长的肖安娜,关闭了她的网店,所有的顾客资料全部丢失,在人们的鄙视下,一个苦苦经营了6年的网店轰然倒塌。那些员工们各奔东西,肖安娜至今在押。

在符号化的宣传中,又有谁还在意这个网店店主曾经的梦想?

肖安娜原罪

肖安娜到底是梦想家,还是罪人?

说她是梦想家,因为充满活力的她不仅解决了几十人的就业,还梦想着拥有自己的品牌,成为真正成功的商人。说她是罪人,因为有人告她卖假货。

这不得不从肖安娜做网店的最初说起。据我的了解,最初上海的网店店主们进货渠道很简单,就是襄阳路,他们从襄阳路的地摊上把服装买回来,再在网上把它卖出去。只有到了后来,有的网店做大了,才有可能有自己的进货渠道。

襄阳路是一个A货充斥之地,一直是假货的集中点。所以,网商们在发展之初就带着“原罪”。我想,肖安娜创业之初也不例外。

但是,这是否是欺骗顾客呢?并不算。实际上,网店的顾客一般都知道那不是正品,他们是图便宜才购买的。并且网商内部经过竞争和洗牌,也形成了职业道德,只要顾客问,他们都会直言不讳地告诉顾客,他卖的并非正品。

最后成交时,基本上是一个愿打,一个愿挨。既然秀水街和襄阳路可以存在,为什么同样类型的肖安娜要受到最严厉的打击?

当CCTV的记者编辑们都把提包换成了LV时,并不是所有的人都用得起LV。但每一个城市因土地财政搞得地价飞升,把那些路边店都挤出了城市,对于路边商品有需求的人只有通过网络来购买。

这就是为什么电视上说肖安娜在欺骗顾客,但实际上,顾客对肖安娜的口碑却居高不下的原因。

一位顾客在肖安娜的店里买完东西后,甚至感慨说:“中国普通消费者,有史以来第一次感受到了什么叫做服务,虽然比不上上帝的感觉,至少在网上购物服务还是相当不错的。”

在肖安娜以及和她类似的网商努力下,网店呈现出野蛮增长的趋势,就如同1980年代的中国民营经济那样生机勃勃。可以说,当时,中国商业贸易最活跃最有创造力的那部分人都来到了网上。

但也正因为网店越做越大,已经有了效益,开始遭到行政部门的关注。任何一个行业在很小没有油水的时候,总是会被监管机构忽略,但一旦它有了效益,监管机构立即就会来争抢,到了这个时候,这个行业发展的黄金时期也就过去了。

比较典型的是网游业,因为网游出得起钱,于是文化部和版署两方面开始争抢网游业,这样,它们办的活动就有人赞助,它们的关系企业也可以活得更滋润。

网店赚钱很少时,即便销售点A货也并没有人注意,可一旦大了,工商部门会找来要求缴税,司法部门过来要求交保护费。

在网络上有一篇流行的文章谈到过保护费的事情,大概是最好的描述:“因为没有营业执照,那相关部门就可以给你定性为非法经营,因为没有明确的税率,可以说你偷税漏税;即使你办证了,也可以说你超出经营范围;大多数淘宝卖家是没有品牌代理权的,那就可以查你售假、商标侵权。反正你就是砧板上的肉,不想被宰,就得识得潜规则。”

肖安娜在2010年上半年已经遭殃过一次,具体情况已经不可考,据说不得不交保护费才重新开张,但树大招风的她躲过了第一劫,却躲不过第二劫,一旦需要抓典型时,保护费作废,继续抓起来。只要被盯上了,就不会再有好日子过。

身背原罪的肖安娜曾经想过转型,但还没有开始,就已经结束了。对这个曾经上进的女孩来说,这几年的努力到底是一场噩梦,还是一次幻灭?

如果我们把肖安娜都逼上了不归路,那么,就再也没有油水可榨了。这不仅需要有关部门想一想,也需要马云想一想,如果他只求自保,不敢为店主争取利益的话,最后被掐死的是淘宝本身。

谨以此文纪念肖安娜、她的网店和她的员工。


告诉你怎么节省时间的一张图

节省时间

节省时间


开启地址重写后出现403错误的解决办法

好多时候,我们一旦开启了apache的地址重写功能,有时候就是出现403错误,
Forbidden

You don’t have permission to access / on this server.
这主要是因为目录权限的原因引起的。

解决办法就是在你的apache域名配置里加上这样一句话

<VirtualHost *:80>
    Options Includes None
    ServerAdmin admin@xingmo.com
    DocumentRoot /server/www/xingmo/a/fanglor
    ServerName jmphp.com
    php_admin_value open_basedir "/server/www/xingmo/a/fanglor:/tmp"
 
    <Directory "/server/www/xingmo/a/fanglor">
        AllowOverride All
        Options -Indexes FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

把目录换成你网站的目录就可以了。


linux中怎么让mysql 加入开机自启动

加入开机自启动;并启动mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 700 /etc/rc.d/init.d/mysqld
chkconfig –add mysqld
chkconfig –level 35 mysqld on
service mysqld start


php获取汉字拼音首字母函数

<?php
function getfirstchar($s0){
	$fchar=ord($s0{0});
       //修正了首字母是拼音的情况 
	if($fchar>=ord("A") and $fchar<=ord("Z") )   { return $s0{0}; }
	if($fchar>=ord("a") and $fchar<=ord("z") )   { return strtoupper($s0{0}); }
	//$s=iconv("UTF-8","gb2312", $s0);
	$asc=ord($s0{0})*256+ord($s0{1})-65536;
	if($asc>=-20319 and $asc<=-20284)return "A";
	if($asc>=-20283 and $asc<=-19776)return "B";
	if($asc>=-19775 and $asc<=-19219)return "C";
	if($asc>=-19218 and $asc<=-18711)return "D";
	if($asc>=-18710 and $asc<=-18527)return "E";
	if($asc>=-18526 and $asc<=-18240)return "F";
	if($asc>=-18239 and $asc<=-17923)return "G";
	if($asc>=-17922 and $asc<=-17418)return "H";
	if($asc>=-17417 and $asc<=-16475)return "J";
	if($asc>=-16474 and $asc<=-16213)return "K";
	if($asc>=-16212 and $asc<=-15641)return "L";
	if($asc>=-15640 and $asc<=-15166)return "M";
	if($asc>=-15165 and $asc<=-14923)return "N";
	if($asc>=-14922 and $asc<=-14915)return "O";
	if($asc>=-14914 and $asc<=-14631)return "P";
	if($asc>=-14630 and $asc<=-14150)return "Q";
	if($asc>=-14149 and $asc<=-14091)return "R";
	if($asc>=-14090 and $asc<=-13319)return "S";
	if($asc>=-13318 and $asc<=-12839)return "T";
	if($asc>=-12838 and $asc<=-12557)return "W";
	if($asc>=-12556 and $asc<=-11848)return "X";
	if($asc>=-11847 and $asc<=-11056)return "Y";
	if($asc>=-11055 and $asc<=-10247)return "Z";
	return false;
}
echo getfirstchar("北京星模实训学校");

php汉字转拼音函数(gbk版)

让我们来看看 php 中怎么把汉字转换成拼音吧。
看下面代码。

function __Dictionary($num)   
{  
	$dictionary = array(  
		array("a", -20319),  
		array("ai", -20317),  
		array("an", -20304),  
		array("ang", -20295),  
		array("ao", -20292),  
		array("ba", -20283),  
		array("bai", -20265),  
		array("ban", -20257),  
		array("bang", -20242),  
		array("bao", -20230),  
		array("bei", -20051),  
		array("ben", -20036),  
		array("beng", -20032),  
		array("bi", -20026),  
		array("bian", -20002),  
		array("biao", -19990),  
		array("bie", -19986),  
		array("bin", -19982),  
		array("bing", -19976),  
		array("bo", -19805),  
		array("bu", -19784),  
		array("ca", -19775),  
		array("cai", -19774),  
		array("can", -19763),  
		array("cang", -19756),  
		array("cao", -19751),  
		array("ce", -19746),  
		array("ceng", -19741),  
		array("cha", -19739),  
		array("chai", -19728),  
		array("chan", -19725),  
		array("chang", -19715),  
		array("chao", -19540),  
		array("che", -19531),  
		array("chen", -19525),  
		array("cheng", -19515),  
		array("chi", -19500),  
		array("chong", -19484),  
		array("chou", -19479),  
		array("chu", -19467),  
		array("chuai", -19289),  
		array("chuan", -19288),  
		array("chuang", -19281),  
		array("chui", -19275),  
		array("chun", -19270),  
		array("chuo", -19263),  
		array("ci", -19261),  
		array("cong", -19249),  
		array("cou", -19243),  
		array("cu", -19242),  
		array("cuan", -19238),  
		array("cui", -19235),  
		array("cun", -19227),  
		array("cuo", -19224),  
		array("da", -19218),  
		array("dai", -19212),  
		array("dan", -19038),  
		array("dang", -19023),  
		array("dao", -19018),  
		array("de", -19006),  
		array("deng", -19003),  
		array("di", -18996),  
		array("dian", -18977),  
		array("diao", -18961),  
		array("die", -18952),  
		array("ding", -18783),  
		array("diu", -18774),  
		array("dong", -18773),  
		array("dou", -18763),  
		array("du", -18756),  
		array("duan", -18741),  
		array("dui", -18735),  
		array("dun", -18731),  
		array("duo", -18722),  
		array("e", -18710),  
		array("en", -18697),  
		array("er", -18696),  
		array("fa", -18526),  
		array("fan", -18518),  
		array("fang", -18501),  
		array("fei", -18490),  
		array("fen", -18478),  
		array("feng", -18463),  
		array("fo", -18448),  
		array("fou", -18447),  
		array("fu", -18446),  
		array("ga", -18239),  
		array("gai", -18237),  
		array("gan", -18231),  
		array("gang", -18220),  
		array("gao", -18211),  
		array("ge", -18201),  
		array("gei", -18184),  
		array("gen", -18183),  
		array("geng", -18181),  
		array("gong", -18012),  
		array("gou", -17997),  
		array("gu", -17988),  
		array("gua", -17970),  
		array("guai", -17964),  
		array("guan", -17961),  
		array("guang", -17950),  
		array("gui", -17947),  
		array("gun", -17931),  
		array("guo", -17928),  
		array("ha", -17922),  
		array("hai", -17759),  
		array("han", -17752),  
		array("hang", -17733),  
		array("hao", -17730),  
		array("he", -17721),  
		array("hei", -17703),  
		array("hen", -17701),  
		array("heng", -17697),  
		array("hong", -17692),  
		array("hou", -17683),  
		array("hu", -17676),  
		array("hua", -17496),  
		array("huai", -17487),  
		array("huan", -17482),  
		array("huang", -17468),  
		array("hui", -17454),  
		array("hun", -17433),  
		array("huo", -17427),  
		array("ji", -17417),  
		array("jia", -17202),  
		array("jian", -17185),  
		array("jiang", -16983),  
		array("jiao", -16970),  
		array("jie", -16942),  
		array("jin", -16915),  
		array("jing", -16733),  
		array("jiong", -16708),  
		array("jiu", -16706),  
		array("ju", -16689),  
		array("juan", -16664),  
		array("jue", -16657),  
		array("jun", -16647),  
		array("ka", -16474),  
		array("kai", -16470),  
		array("kan", -16465),  
		array("kang", -16459),  
		array("kao", -16452),  
		array("ke", -16448),  
		array("ken", -16433),  
		array("keng", -16429),  
		array("kong", -16427),  
		array("kou", -16423),  
		array("ku", -16419),  
		array("kua", -16412),  
		array("kuai", -16407),  
		array("kuan", -16403),  
		array("kuang", -16401),  
		array("kui", -16393),  
		array("kun", -16220),  
		array("kuo", -16216),  
		array("la", -16212),  
		array("lai", -16205),  
		array("lan", -16202),  
		array("lang", -16187),  
		array("lao", -16180),  
		array("le", -16171),  
		array("lei", -16169),  
		array("leng", -16158),  
		array("li", -16155),  
		array("lia", -15959),  
		array("lian", -15958),  
		array("liang", -15944),  
		array("liao", -15933),  
		array("lie", -15920),  
		array("lin", -15915),  
		array("ling", -15903),  
		array("liu", -15889),  
		array("long", -15878),  
		array("lou", -15707),  
		array("lu", -15701),  
		array("lv", -15681),  
		array("luan", -15667),  
		array("lue", -15661),  
		array("lun", -15659),  
		array("luo", -15652),  
		array("ma", -15640),  
		array("mai", -15631),  
		array("man", -15625),  
		array("mang", -15454),  
		array("mao", -15448),  
		array("me", -15436),  
		array("mei", -15435),  
		array("men", -15419),  
		array("meng", -15416),  
		array("mi", -15408),  
		array("mian", -15394),  
		array("miao", -15385),  
		array("mie", -15377),  
		array("min", -15375),  
		array("ming", -15369),  
		array("miu", -15363),  
		array("mo", -15362),  
		array("mou", -15183),  
		array("mu", -15180),  
		array("na", -15165),  
		array("nai", -15158),  
		array("nan", -15153),  
		array("nang", -15150),  
		array("nao", -15149),  
		array("ne", -15144),  
		array("nei", -15143),  
		array("nen", -15141),  
		array("neng", -15140),  
		array("ni", -15139),  
		array("nian", -15128),  
		array("niang", -15121),  
		array("niao", -15119),  
		array("nie", -15117),  
		array("nin", -15110),  
		array("ning", -15109),  
		array("niu", -14941),  
		array("nong", -14937),  
		array("nu", -14933),  
		array("nv", -14930),  
		array("nuan", -14929),  
		array("nue", -14928),  
		array("nuo", -14926),  
		array("o", -14922),  
		array("ou", -14921),  
		array("pa", -14914),  
		array("pai", -14908),  
		array("pan", -14902),  
		array("pang", -14894),  
		array("pao", -14889),  
		array("pei", -14882),  
		array("pen", -14873),  
		array("peng", -14871),  
		array("pi", -14857),  
		array("pian", -14678),  
		array("piao", -14674),  
		array("pie", -14670),  
		array("pin", -14668),  
		array("ping", -14663),  
		array("po", -14654),  
		array("pu", -14645),  
		array("qi", -14630),  
		array("qia", -14594),  
		array("qian", -14429),  
		array("qiang", -14407),  
		array("qiao", -14399),  
		array("qie", -14384),  
		array("qin", -14379),  
		array("qing", -14368),  
		array("qiong", -14355),  
		array("qiu", -14353),  
		array("qu", -14345),  
		array("quan", -14170),  
		array("que", -14159),  
		array("qun", -14151),  
		array("ran", -14149),  
		array("rang", -14145),  
		array("rao", -14140),  
		array("re", -14137),  
		array("ren", -14135),  
		array("reng", -14125),  
		array("ri", -14123),  
		array("rong", -14122),  
		array("rou", -14112),  
		array("ru", -14109),  
		array("ruan", -14099),  
		array("rui", -14097),  
		array("run", -14094),  
		array("ruo", -14092),  
		array("sa", -14090),  
		array("sai", -14087),  
		array("san", -14083),  
		array("sang", -13917),  
		array("sao", -13914),  
		array("se", -13910),  
		array("sen", -13907),  
		array("seng", -13906),  
		array("sha", -13905),  
		array("shai", -13896),  
		array("shan", -13894),  
		array("shang", -13878),  
		array("shao", -13870),  
		array("she", -13859),  
		array("shen", -13847),  
		array("sheng", -13831),  
		array("shi", -13658),  
		array("shou", -13611),  
		array("shu", -13601),  
		array("shua", -13406),  
		array("shuai", -13404),  
		array("shuan", -13400),  
		array("shuang", -13398),  
		array("shui", -13395),  
		array("shun", -13391),  
		array("shuo", -13387),  
		array("si", -13383),  
		array("song", -13367),  
		array("sou", -13359),  
		array("su", -13356),  
		array("suan", -13343),  
		array("sui", -13340),  
		array("sun", -13329),  
		array("suo", -13326),  
		array("ta", -13318),  
		array("tai", -13147),  
		array("tan", -13138),  
		array("tang", -13120),  
		array("tao", -13107),  
		array("te", -13096),  
		array("teng", -13095),  
		array("ti", -13091),  
		array("tian", -13076),  
		array("tiao", -13068),  
		array("tie", -13063),  
		array("ting", -13060),  
		array("tong", -12888),  
		array("tou", -12875),  
		array("tu", -12871),  
		array("tuan", -12860),  
		array("tui", -12858),  
		array("tun", -12852),  
		array("tuo", -12849),  
		array("wa", -12838),  
		array("wai", -12831),  
		array("wan", -12829),  
		array("wang", -12812),  
		array("wei", -12802),  
		array("wen", -12607),  
		array("weng", -12597),  
		array("wo", -12594),  
		array("wu", -12585),  
		array("xi", -12556),  
		array("xia", -12359),  
		array("xian", -12346),  
		array("xiang", -12320),  
		array("xiao", -12300),  
		array("xie", -12120),  
		array("xin", -12099),  
		array("xing", -12089),  
		array("xiong", -12074),  
		array("xiu", -12067),  
		array("xu", -12058),  
		array("xuan", -12039),  
		array("xue", -11867),  
		array("xun", -11861),  
		array("ya", -11847),  
		array("yan", -11831),  
		array("yang", -11798),  
		array("yao", -11781),  
		array("ye", -11604),  
		array("yi", -11589),  
		array("yin", -11536),  
		array("ying", -11358),  
		array("yo", -11340),  
		array("yong", -11339),  
		array("you", -11324),  
		array("yu", -11303),  
		array("yuan", -11097),  
		array("yue", -11077),  
		array("yun", -11067),  
		array("za", -11055),  
		array("zai", -11052),  
		array("zan", -11045),  
		array("zang", -11041),  
		array("zao", -11038),  
		array("ze", -11024),  
		array("zei", -11020),  
		array("zen", -11019),  
		array("zeng", -11018),  
		array("zha", -11014),  
		array("zhai", -10838),  
		array("zhan", -10832),  
		array("zhang", -10815),  
		array("zhao", -10800),  
		array("zhe", -10790),  
		array("zhen", -10780),  
		array("zheng", -10764),  
		array("zhi", -10587),  
		array("zhong", -10544),  
		array("zhou", -10533),  
		array("zhu", -10519),  
		array("zhua", -10331),  
		array("zhuai", -10329),  
		array("zhuan", -10328),  
		array("zhuang", -10322),  
		array("zhui", -10315),  
		array("zhun", -10309),  
		array("zhuo", -10307),  
		array("zi", -10296),  
		array("zong", -10281),  
		array("zou", -10274),  
		array("zu", -10270),  
		array("zuan", -10262),  
		array("zui", -10260),  
		array("zun", -10256),  
		array("zuo", -10254)  
	);  
 
      if ($num > 0 && $num < 160) {  
          return chr($num);  
      } elseif ($num < -20319 || $num > -10247) {  
          return "";  
      } else {  
          for ($i = count($dictionary) - 1; $i >= 0; $i--) {  
              if ($dictionary[$i][1] <= $num) {  
                  break;  
              }  
          }  
          return $dictionary[$i][0];  
      }  
}  
 
/** 
* 汉字字串转换成拼音串 
* 
* @param string $string 
* @return string 
* // 中英文字符混杂字串可用 
*/  
function zhToPinyin($string)  
{  
  $output = "";  
  for ($i=0; $i < strlen($string); $i++) {  
	  $letter = ord(substr($string, $i, 1));  
	  if($letter > 160){  
		  $tmp = ord(substr($string, ++$i, 1));  
		  $letter = $letter * 256 + $tmp - 65536;  
	  }  
	  $output .=__Dictionary($letter);  
  }  
  return $output;  
}
 
echo zhToPinyin ('北京星模实训学校欢迎你');

打印结果

beijingxingmoshixunxuexiaohuanyingni - by fanglor

经测试,一般的汉字是没有什么问题,不过要是出现生僻字之类的,貌似不好用。比较 ,涢,翀,赟 这类的。


发一个用php curl发新浪微博函数

下午折腾了半天,终于写好了一个 用 php curl发新浪微博的函数
现共享给大家。 有了这个函数,我们可以直接用在我们的项目中,把信息直接同步到新浪微博了。

 
function sendWeibo ($name,$password,$content) 
{
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL,"http://api.t.sina.com.cn/statuses/update.json?source=3350827508");
	// 设置是否显示header信息 0是不显示,1是显示  默认为0
	curl_setopt($curl, CURLOPT_HEADER, 0);
	// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。0显示在屏幕上,1不显示在屏幕上,默认为0
	curl_setopt($curl,CURLOPT_TIMEOUT,10);
	curl_setopt($curl,CURLOPT_HEADER,1);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	// 要验证的用户名密码
	curl_setopt($curl, CURLOPT_USERPWD, "{$name}:{$password}");
	curl_setopt($curl,CURLOPT_POST,1);
	curl_setopt($curl,CURLOPT_POSTFIELDS,'status='.urlencode($content));
	$data = curl_exec($curl);
	curl_close($curl);
}

测试代码 :

sendWeibo ('fanglor@qq.com','******','北京星模实训学校,专业php培训机构!');

程序员进阶的建议:多看、多写、多交流

很多初学者都说入门之后不知道该如何提高,我都是告诉他们多实践。最近在我们的团队中建立了一个学生的实习小组,我在和他们讲授程序设计分析的时候,我也给他们了个小建议写代码就是多看、多写,后来又补上一点:多交流。

我认为不管是做什么行业或工作,只要专注都可以有自己不同的成就。因此我觉得做任何事必需要有热情,而且是持续的热情,有一句话说“好的开始是成功的一半,持之以恒是成功的另一半”我很认同,所以自己的认定的事情就应该坚持的去做。我提出了三多:多看、多写、多交流,来将热情付出行动。

这里谈到的是当你入门后怎么使自己不段的提高的一些方法,可能只是一些片面之词,但我相信只要你去做了都会有一些收获。

在我们开始学习程序,都必须对一些基础知识进行学习,例如语法、常用的内置函数,就PHP来说内置函数有成百上千个(没有统计过),就常用的也有上百个。怎么才可以对这些逐个掌握?死记硬背?这是一个常人都无法做到的,即使是记住了,通常能否灵活的应用还要打个问号。那该怎么做呢?

首先是多看,看技术文章,看开源代码。

技术文章应该不必多说,这是学习新技术和积累技术的必备渠道。这里我谈谈该怎么看,很多人包括我自已有时候,只是看一遍就算了,这样的结果一般都是知其然不知所以然。我认为要把别人的东西变成自己的必须实践。把文章所说的技术通过自己理解的写出来并改进,并在合适的时候尽快应用的你的实际工作中。

再说看代码,一是一些网友的代码,这里就要有一个观念,就是不能迷信别人的代码,应该客观的去看,学习别人的方法的时候,应该去考虑它是否有问题,应该是辩证的态度对对待,如果有问题自己试着去解决,并和他们交流。二是看开源项目中的代码,这类就不仅仅是看代码了还有框架、设计思想等。我建议每个人至少看到1到2套开源代码,因为我认为开源代码对自己的提高比一般的技术文章要快的很多。首先它们都是一些较为成功的项目,在成功项目中其实包含了原作者的经验和其项目不断改进中产生的非富经验。对于开源项目,我的方法是先从它的入口文件看起一般是index.php看它的整体文件结构,再看它的公共文件里的内容,具体的一些常用的工具类,这样会对整个项目的结构有一个了解,然后就是你所兴趣的功能的具体实现代码,并详细搞懂他的实现方式和原理。在看的过程中你肯定可以学到很多有价值的东西。我个人的经验是:看的最多的是DZ的代码,其它项目也很多,但比较全面的还是dz的代码。个人认为看代码还是比较速成的一种方式,因为别人的走过的路你就不需要再走了,站在巨人的肩膀上总是可以走的更快更远。

关于多写其实上面也提到了,学习后的东西应该要马上实践,并尽快在合适的时候应用到自己的工作中,这样才能收获的更多更快。另一方面是自己尝试着去写一些小项目,只有去做一完整性的项目才是最有价值的实践,但在做这些实践中我认为应该严格的要求自己,既然是为了学习,就不是应该敷衍了事,尽可能把所有细节都处理的最好。还有就是时间一定要要求自己,不能拖,一方面是要给自己压力,二是如果时间拖的太久思路和激情没法持续的话,那你的计划很可能最终会失败并不了了之。

开篇我提到很多初学者都说入门之后不知道该如何提高,我都告诉他们要多写,为什么会无法提高,我认为是没有目标,只要你给自己定一个目标,然后去实现,完成后其实也达到自己提高的目的了。例如你去写一个简单的博客程序,在实现的过程中会遇到很多问题,再逐一去解决,这样你就有了学习的方向了,解决问题就是积累经验和学习的过程。总的来说要给自己设置一个需要完成的目标,这个目标是什么有什么内容,什么时候完成都很清楚。

其实说到这里就可以回答上面该如何去掌握那么多的函数呢,当你看过和写过很多代码后你会发现你所掌握的函数和方法已经很多了,这就是在实践的过程中无形产生的结果。所以什么语法之类的基础的东西是不需要去死亡硬背的,在运用的时候自然就可以对它驾轻就熟。

最后我认为做技术的交流很重要,因为做技术是个永无止境的学习过程,而交流是一种更有效的学习方式。因为每个人的知识系统都是不同的,每个人掌握的东西不同,思维方式各异。所以交流就是一个互相学习和促进的过程,当你把自己的想法与别人交流你就会收获更多新的想法。交流是一咱倍速增长的过程,前一段我写了一篇《当你开启一扇门的时候,很多扇门将为你开启》给我们的团队就是想表达这个想法。

交流有很多的,有线上的有线下的,大家都有上论坛的习惯,这是一种交流方式,但我认为线下交流更有效,语言的交流比文字的交流方式更直接和全面。因为我是PEA福州的常委之一,很多线下活动是由我组织的,从参加人数来看并不是很理想,所以我认为做技术的应该更开放一些,多参加类似PEA的这种交流。

交流一定要是开放的,所以在交流中应该是一种包容的心态去面对。也就是说我们是持有自己想法的时候也应该耐心倾听他人的意见,不能认死理。只有站在客观的角度去看问题才能把问题看的更透彻,只有不抵触才能让自己学到更多的东西。

在我们的技术团队中有定期的技术分享会,目的就是为了建立交流的平台,让大家都尝试表达自己的意见,锻炼自己的能力,并可以和更多的人去交流。

最后总结一下,多看,吸收别人的经验转化为自己所用,多写,全面性的锻炼自己的能力,多交流,利用众人的智慧。三多更多的就是去做。


用php遍历目录下的所有文件

收集的一个php遍历目录的函数,用到内置的 RecursiveDirectoryIterator 对象。

 
function get_files($name) { 
	$dir = new RecursiveDirectoryIterator($name);
	$files = array();
	for (; $dir->valid(); $dir->next()) {
		if ($dir->isDir() && !$dir->isDot()) {
			if ($dir->haschildren()) {
				$files = array_merge($files, get_files($dir->key()));
			};
		}else if($dir->isFile() ){
			$files[] = $dir->getPathName();
		}
	}
	return $files;
}