PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便),curl_setopt 是php的一个扩展库
使用条件:需要在php.ini 中配置开启。(PHP 4 >= 4.0.2)
//取消下面的注释
extension=php_curl.dll
在Linux下面,需要重新编译PHP了,编译时,你需要打开编译参数——在configure命令上加上“–with-curl” 参数。
1、 一个抓取网页的简单案例:
- // 创建一个新cURL资源
- $ch = curl_init();
- // 设置URL和相应的选项
- curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/");
- curl_setopt($ch, CURLOPT_HEADER, false);
- // 抓取URL并把它传递给浏览器
- curl_exec($ch);
- //关闭cURL资源,并且释放系统资源
- curl_close($ch);
2、POST数据案例:
- // 创建一个新cURL资源
- $ch = curl_init();
- $data = 'phone='. urlencode($phone);
- // 设置URL和相应的选项
- curl_setopt($ch, CURLOPT_URL, "http://www.post.com/");
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- // 抓取URL并把它传递给浏览器
- curl_exec($ch);
- //关闭cURL资源,并且释放系统资源
- curl_close($ch);
3、关于SSL和Cookie
关于SSL也就是HTTPS协议,你只需要把CURLOPT_URL连接中的http://变成https://就可以了。当然,还有一个参数叫CURLOPT_SSL_VERIFYHOST可以设置为验证站点。
关于Cookie,你需要了解下面三个参数:
CURLOPT_COOKIE,在当面的会话中设置一个cookie
CURLOPT_COOKIEJAR,当会话结束的时候保存一个Cookie
CURLOPT_COOKIEFILE,Cookie的文件。
PS:新浪微博登陆API部分截取(部分我增加了点注释,全当参数翻译下。哈哈) 有兴趣的自己研究,自己挪为己用。嘿嘿
- /**
- * Make an HTTP request
- *
- * @return string API results
- * @ignore
- */
- function http($url, $method, $postfields = NULL, $headers = array()) {
- $this->http_info = array();
- $ci = curl_init();
- /* Curl settings */
- curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);//让cURL自己判断使用哪个版本
- curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);//在HTTP请求中包含一个"User-Agent: "头的字符串。
- curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);//在发起连接前等待的时间,如果设置为0,则无限等待
- curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);//设置cURL允许执行的最长秒数
- curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);//返回原生的(Raw)输出
- curl_setopt($ci, CURLOPT_ENCODING, "");//HTTP请求头中"Accept-Encoding: "的值。支持的编码有"identity","deflate"和"gzip"。如果为空字符串"",请求头会发送所有支持的编码类型。
- curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);//禁用后cURL将终止从服务端进行验证
- curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));//第一个是cURL的资源句柄,第二个是输出的header数据
- curl_setopt($ci, CURLOPT_HEADER, FALSE);//启用时会将头文件的信息作为数据流输出
- switch ($method) {
- case 'POST':
- curl_setopt($ci, CURLOPT_POST, TRUE);
- if (!empty($postfields)) {
- curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
- $this->postdata = $postfields;
- }
- break;
- case 'DELETE':
- curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
- if (!empty($postfields)) {
- $url = "{$url}?{$postfields}";
- }
- }
- if ( isset($this->access_token) && $this->access_token )
- $headers[] = "Authorization: OAuth2 ".$this->access_token;
- $headers[] = "API-RemoteIP: " . $_SERVER['REMOTE_ADDR'];
- curl_setopt($ci, CURLOPT_URL, $url );
- curl_setopt($ci, CURLOPT_HTTPHEADER, $headers );
- curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE );
- $response = curl_exec($ci);
- $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
- $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
- $this->url = $url;
- if ($this->debug) {
- echo "=====post data======\r\n";
- var_dump($postfields);
- echo '=====info====='."\r\n";
- print_r( curl_getinfo($ci) );
- echo '=====$response====='."\r\n";
- print_r( $response );
- }
- curl_close ($ci);
- return $response;
- }
更详细的参数说明参考:http://cn2.php.net/curl_setopt
js判断是否在微信浏览器中打开
用JS来判断了,经过查找资料终于实现了效果,直接上代码
function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } }
通过测试完全通过,无论是android 还是iphone,ipad 都可以,当然我们除了用js来判断之外,用其它语言来判断就更简单了,比如PHP
function is_weixin(){ if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { return true; } return false; }
Linux系统下各文件目录的含义
/bin bin是Binary的缩写。这个目录存放着最经常使用的命令。 /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。 /dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 /etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 /lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 /mnt 在这里面中有四个目录,系统提供这些目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/cdrom上,然后进入该目录就可以查看光驱里的内容了。 /proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件 /root 该目录为系统管理员,也称作超级权限者的用户主目录。 /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 /tmp 这个目录是用来存放一些临时文件的。 我们要用到的很多应用程序和文件几乎都存放在usr目录下。具体来说: /usr/X11R6存放X-Windows的目录; /usr/games存放着XteamLinux自带的小游戏; /usr/bin存放着许多应用程序; /usr/sbin存放root超级用户使用的管理程序; /usr/doc Linux技术文档; /usr/include用来存放Linux下开发和编译应用程序所需要的头文件; /usr/lib存放一些常用的动态链接共享库和静态档案库; /usr/local这是提供给一般用户的/usr目录,在这里安装一般的应用软件; /usr/man帮助文档所在的目录; /usr/src Linux开放的源代码,就存在这个目录,爱好者们别放过哦; /var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。如果你想做一个网站,你也会用到/var/www这个目录。
MySql数据库 sql查询增加序号的伪列
在查询数据库的时候,我们有时候需要对查询出来的数据加上序列,1,2,3,……n
例如:我们根据表的某个字段排序后,要对这些数据加上序列,这个时候序号常常不是我们建表时设置好的自增的主键id,怎么办呢????
可能我们会用变量来解决,如下
set @rownum=0;
SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM table_name
如果在数据库中要用一句SQL语句来实现,这又改怎么办呢????
Oracle数据库有专门的rownum来解决伪序列问题,但是MySQL却到目前为止还没有内置的函数等来解决此问题
这个问题也困扰了我一段时间,到各种上发帖也没有能回答,最后在无意间找到了这种解决方法
SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM (SELECT @rownum:=0) r, table_name
把rownum的设置初值放到了from 和需要查询的表的前面
原文来自“老鸟的大心脏”,在这里谢谢他。
希望能帮助更多需要帮助的人……
也希望更多的高手们提出更多的漂亮的方法……
也许有人也会用到存储过程来解决,那也是一个方法,我曾经也用过,但是后来不能用存储过程了,就悲剧了
摘自 ystyaoshengting的专栏
但是程序会报错“Parameter '@rownum' must be defined.”
这时在配置文件数据库链接串后面加上“Allow User Variables=True”,就好了
<!--mysql连接字符串-->
<add key="MySqlConn" value="Server=192.168.1.238;DataBase=gm;Uid=root;Pwd=000000;Allow User Variables=True;"/>
MYSQL explain详解
explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。
先解析一条sql语句,看出现什么内容
EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.address
FROM uchome_space ASs,uchome_spacefieldASf
WHERE 1
AND s.groupid=0
AND s.uid=f.uid
1. id
SELECT识别符。这是SELECT查询序列号。这个不重要,查询序号即为sql语句执行的顺序,看下面这条sql
EXPLAINSELECT*FROM(
SELECT* FROMuchome_space LIMIT10)ASs
它的执行结果为
可以看到这时的id变化了
2.select_type
select类型,它有以下几种值
2.1 simple 它表示简单的select,没有union和子查询
2.2 primary 最外面的select,在有子查询的语句中,最外面的select查询就是primary,上图中就是这样
2.3 union union语句的第二个或者说是后面那一个.现执行一条语句,explain
select * from uchome_space limit 10 union select * from uchome_space limit 10,10
会有如下结果
第二条语句使用了union
2.4 dependent union UNION中的第二个或后面的SELECT语句,取决于外面的查询
2.5 union result UNION的结果,如上面所示
还有几个参数,这里就不说了,不重要
3 table
输出的行所用的表,这个参数显而易见,容易理解
4 type
连接类型。有多个参数,先从最佳类型到最差类型介绍 重要且困难
4.1 system
表仅有一行,这是const类型的特列,平时不会出现,这个也可以忽略不计
4.2 const
表最多有一个匹配行,const用于比较primary key 或者unique索引。因为只匹配一行数据,所以很快
记住一定是用到primary key 或者unique,并且只检索出两条数据的 情况下才会是const,看下面这条语句
explain SELECT * FROM `asj_admin_log` limit 1,结果是
虽然只搜索一条数据,但是因为没有用到指定的索引,所以不会使用const.继续看下面这个
explain SELECT * FROM `asj_admin_log` where log_id = 111
log_id是主键,所以使用了const。所以说可以理解为const是最优化的
4.3 eq_ref
对于eq_ref的解释,mysql手册是这样说的:"对于每个来自于前面的表的行组合,从该表中读取一行。这可能是最好的联接类型,除了const类型。它用在一个索引的所有部分被联接使用并且索引是UNIQUE或PRIMARY KEY"。eq_ref可以用于使用=比较带索引的列。看下面的语句
explain select * from uchome_spacefield,uchome_space where uchome_spacefield.uid = uchome_space.uid
得到的结果是下图所示。很明显,mysql使用eq_ref联接来处理uchome_space表。
目前的疑问:
4.3.1 为什么是只有uchome_space一个表用到了eq_ref,并且sql语句如果变成
explain select * from uchome_space,uchome_spacefield where uchome_space.uid = uchome_spacefield.uid
结果还是一样,需要说明的是uid在这两个表中都是primary
4.4 ref 对于每个来自于前面的表的行组合,所有有匹配索引值的行将从这张表中读取。如果联接只使用键的最左边的前缀,或如果键不是UNIQUE或PRIMARY KEY(换句话说,如果联接不能基于关键字选择单个行的话),则使用ref。如果使用的键仅仅匹配少量行,该联接类型是不错的。
看下面这条语句 explain select * from uchome_space where uchome_space.friendnum = 0,得到结果如下,这条语句能搜出1w条数据
4.5 ref_or_null 该联接类型如同ref,但是添加了MySQL可以专门搜索包含NULL值的行。在解决子查询中经常使用该联接类型的优化。
上面这五种情况都是很理想的索引使用情况
4.6 index_merge 该联接类型表示使用了索引合并优化方法。在这种情况下,key列包含了使用的索引的清单,key_len包含了使用的索引的最长的关键元素。
4.7 unique_subquery
4.8 index_subquery
4.9 range 给定范围内的检索,使用一个索引来检查行。看下面两条语句
explain select * from uchome_space where uid in (1,2)
explain select * from uchome_space where groupid in (1,2)
uid有索引,groupid没有索引,结果是第一条语句的联接类型是range,第二个是ALL.以为是一定范围所以说像 between也可以这种联接,很明显
explain select * from uchome_space where friendnum = 17
这样的语句是不会使用range的,它会使用更好的联接类型就是上面介绍的ref
4.10 index 该联接类型与ALL相同,除了只有索引树被扫描。这通常比ALL快,因为索引文件通常比数据文件小。(也就是说虽然all和Index都是读全表,但index是从索引中读取的,而all是从硬盘中读的)
当查询只使用作为单索引一部分的列时,MySQL可以使用该联接类型。
4.11 ALL 对于每个来自于先前的表的行组合,进行完整的表扫描。如果表是第一个没标记const的表,这通常不好,并且通常在它情况下很差。通常可以增加更多的索引而不要使用ALL,使得行能基于前面的表中的常数值或列值被检索出。
5 possible_keys 提示使用哪个索引会在该表中找到行,不太重要
6 keys MYSQL使用的索引,简单且重要
7 key_len MYSQL使用的索引长度
8 ref ref列显示使用哪个列或常数与key一起从表中选择行。
9 rows 显示MYSQL执行查询的行数,简单且重要,数值越大越不好,说明没有用好索引
10 Extra 该列包含MySQL解决查询的详细信息。
10.1 Distinct MySQL发现第1个匹配行后,停止为当前的行组合搜索更多的行。一直没见过这个值
10.2 Not exists
10.3 range checked for each record
没有找到合适的索引
10.4 using filesort
MYSQL手册是这么解释的“MySQL需要额外的一次传递,以找出如何按排序顺序检索行。通过根据联接类型浏览所有行并为所有匹配WHERE子句的行保存排序关键字和行的指针来完成排序。然后关键字被排序,并按排序顺序检索行。”目前不太明白
10.5 using index 只使用索引树中的信息而不需要进一步搜索读取实际的行来检索表中的信息。这个比较容易理解,就是说明是否使用了索引
explain select * from ucspace_uchome where uid = 1的extra为using index(uid建有索引)
explain select count(*) from uchome_space where groupid=1 的extra为using where(groupid未建立索引)
10.6 using temporary
为了解决查询,MySQL需要创建一个临时表来容纳结果。典型情况如查询包含可以按不同情况列出列的GROUP BY和ORDER BY子句时。
出现using temporary就说明语句需要优化了,举个例子来说
EXPLAIN SELECT ads.id FROM ads, city WHERE city.city_id = 8005 AND ads.status = 'online' AND city.ads_id=ads.id ORDER BY ads.id desc
id select_type table type possible_keys key key_len ref rows filtered Extra
------ ----------- ------ ------ -------------- ------- ------- -------------------- ------ -------- -------------------------------
1 SIMPLE city ref ads_id,city_id city_id 4 const 2838 100.00 Using temporary; Using filesort
1 SIMPLE ads eq_ref PRIMARY PRIMARY 4 city.ads_id 1 100.00 Using where
这条语句会使用using temporary,而下面这条语句则不会
EXPLAIN SELECT ads.id FROM ads, city WHERE city.city_id = 8005 AND ads.status = 'online' AND city.ads_id=ads.id ORDER BY city.ads_id desc
id select_type table type possible_keys key key_len ref rows filtered Extra
------ ----------- ------ ------ -------------- ------- ------- -------------------- ------ -------- ---------------------------
1 SIMPLE city ref ads_id,city_id city_id 4 const 2838 100.00 Using where; Using filesort
1 SIMPLE ads eq_ref PRIMARY PRIMARY 4 city.ads_id 1 100.00 Using where
这是为什么呢?他俩之间只是一个order by不同,MySQL 表关联的算法是 Nest Loop Join,是通过驱动表的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果。EXPLAIN 结果中,第一行出现的表就是驱动表(Important!)以上两个查询语句,驱动表都是 city,如上面的执行计划所示!
1)指定了联接条件时,满足查询条件的记录行数少的表为[驱动表];
2)未指定联接条件时,行数少的表为[驱动表](Important!)。
永远用小结果集驱动大结果集
今天学到了一个很重要的一点:当不确定是用哪种类型的join时,让mysql优化器自动去判断,我们只需写select * from t1,t2 where t1.field = t2.field
10.7 using where
WHERE子句用于限制哪一个行匹配下一个表或发送到客户。除非你专门从表中索取或检查所有行,如果Extra值不为Using where并且表联接类型为ALL或index,查询可能会有一些错误。(这个说明不是很理解,因为很多很多语句都会有where条件,而type为all或index只能说明检索的数据多,并不能说明错误,useing where不是很重要,但是很常见)
如果想要使查询尽可能快,应找出Using filesort 和Using temporary的Extra值。
10.8 Using sort_union(...), Using union(...),Using intersect(...)
这些函数说明如何为index_merge联接类型合并索引扫描
10.9 Using index for group-by
类似于访问表的Using index方式,Using index for group-by表示MySQL发现了一个索引,可以用来查询GROUP BY或DISTINCT查询的所有列,而不要额外搜索硬盘访问实际的表。并且,按最有效的方式使用索引,以便对于每个组,只读取少量索引条目。
实例讲解
通过相乘EXPLAIN输出的rows列的所有值,你能得到一个关于一个联接如何的提示。这应该粗略地告诉你MySQL必须检查多少行以执行查询。当你使用max_join_size变量限制查询时,也用这个乘积来确定执行哪个多表SELECT语句。
LNMP一键安装包
系统需求:
- CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian Linux系统
- 需要3GB以上硬盘剩余空间
- 128M以上内存,Xen的需要有SWAP,OpenVZ的另外至少要有128MB以上的vSWAP或突发内存(小内存请勿使用64位系统),MySQL 5.6及MariaDB 10必须1G以上内存。
- VPS或服务器必须已经联网,同时VPS/服务器 DNS要正常!
- Linux下区分大小写,输入命令时请注意!
安装步骤:
1、使用putty或类似的SSH工具登陆VPS或服务器;
登陆后运行:screen -S lnmp
如果提示screen: command not found 命令不存在可以执行:yum install screen 或 apt-get install screen安装,详细的screen教程。
您可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),两者没什么区别,只是完整版把一些需要的源码文件预先放到安装包里。
安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.sh lnmp
如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。
如下载速度慢请更换其他下载节点,详情请看下载页面。LNMP下载节点具体替换方法。
按上述命令执行后,会出现如下提示:
需要设置MySQL的root密码(不输入直接回车将会设置为root),输入后回车进入下一步,如下图所示:
这里需要确认是否启用MySQL InnoDB,如果不确定是否启用可以输入 y ,输入 y 表示启用,输入 n 表示不启用。默认为y 启用,输入后回车进入下一步,选择MySQL版本:
输入MySQL或MariaDB版本的序号,回车进入下一步,选择PHP版本:
输入PHP版本的序号,回车进入下一步,选择是否安装内存优化:
可以选择不安装、Jemalloc或TCmalloc,输入对应序号回车。
如果是LNMPA或LAMP的话还需要设置管理员邮箱
再选择Apache版本
提示"Press any key to install...or Press Ctrl+c to cancel"后,按回车键确认开始安装。
LNMP脚本就会自动安装编译Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer这几个软件。
安装时间可能会几十分钟到几个小时不等,主要是机器的配置网速等原因会造成影响。
3、安装完成
如果显示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并Install lnmp V1.2 completed! enjoy it.的话,说明已经安装成功。
接下来按添加虚拟主机教程,添加虚拟主机,通过sftp或ftp服务器上传网站,将域名解析到VPS或服务器的IP上,解析生效即可使用。
4、安装失败
如果出现类似上图的提示,则表明安装失败,说明没有安装成功!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。
5、添加、删除虚拟主机及伪静态管理
http://lnmp.org/faq/lnmp-vhost-add-howto.html
6、eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache的安装
http://lnmp.org/faq/addons.html
7、LNMP相关软件目录及文件位置
http://lnmp.org/faq/lnmp-software-list.html
8、LNMP状态管理命令
http://lnmp.org/faq/lnmp-status-manager.html
这9个细节决定你的收入!千真万确!
看似不重要的细节,往往就决定着你的收入。千万别不当回事,学会了这些,在职场事半功倍。
一、“形象好,气质佳“。在这个看颜值的社会,好的形象绝对会给你加分。一个精致的妆容,一套得体的衣服,是你必不可少的包装武器。
二、善于沟通的人才能有更多的机遇。首先要学会去倾听,倾听才会得到有用的信息;其次要学会表达,善于表达自己,才会有人伯乐来牵出你这匹千里马。
三、要摆正自己的态度,不要说不可能,要说我试试;不要说我不行了,我只是有点累了;不要说我不知道,要说我去查一下;面对困难,要直面挑战,而不是落荒而逃。
四、你要像一个成功者那样去思考问题,拒绝人云亦云,有自己独特的见解。这种无形的珍贵财产,会给你带来有形的财富。
五、不要提你加了多少的班,吃了多少的苦,在有限的时间内做出业绩才是效率。现在这个社会看的是功劳,而不是苦劳。
六、看一个人牛不牛不是看手机屏有多大,而是要看手机里的存的联系人是谁?不要小瞧朋友圈,这是一个分分钟就能解决你眼中的“大事”的地方。
七、控制自己的情绪、控制自己的欲望、控制自己的恶习。一个连自己的情绪都控制不住的人,如何控制自己的人生;控制自己的欲望,才可以无欲则刚;能改掉自己恶习的人,绝不会差到哪里去。
八、努力也要有个方向,否则就是白耽误功夫。在你的职业生涯中,会面临着一系列的选择,每一次的选择都将是一次机遇。
九、有时候不是老板给你多少工资,而是自身的价值决定了你拿多少工资。能力到位了,收入自然会到位。所以不断地学习技术和本领,是为自己增值的必要方式。
团队打造做好这20步,执行力瞬间爆表!
一、团队信仰
世界上有两个组织是最强大的,一个是宗教,另一个是军队,为什么这两个组织最强大,我们来学习一下,宗教把信仰放在第一位,军队把使命放在第一位,宗教成员为信仰牺牲是一种光荣,军队战士为使命牺牲是一种荣誉,信仰和使命是什么,是一种能让组织延续的文化,我不止一次的讲过:“在这个世界上只有文化才具有引导性,统一性和传承性,并且只有文化让这三者合一,恰恰这三者都是获取领导力最有效的手段”。
那么,信仰和使命的背后是什么,是教规,是制度,可见,铁律教规和严明的制度,不存在合理不合理,不存在人性化。所以,为了信仰做出任何的行为,或出格的行为,包括触犯国家和世界法律的都是光荣的,虽然法律是为统治阶级服务的,而信仰在教徒的心中才是至高无上的,这就是信仰的力量。在团队管理的过程中,如果要寻找团队的信仰就要顺着这个方向去提炼,去摸索,有些人则真正在打造团队,则有些人则在利用人心,其实这两者是有很大区别的。
二、团队价值观
团队的价值观管理永远都是团队管理的核心动力。
三、团队利益
狼在捕获猎物之后,每一个参与捕猎的成员都能分享到胜利的果实,这一条“狼规”从狼这个物种存在一直延续到今天,狼的延续就是这条“狼规”的延续,可见,合理公平的分配机制是团队能否长远的基础。
四、团队荣誉
请永远的牢记,不论你有多么的成功,请将你所有的收获与荣耀归功于你的团队,是一种领导艺术也好,是激励团队成员也好,你自己去想吧。
五、团队的力量
当团队要超越一个目标时,我们需要的不是狮子一样的英雄,而是像蚂蚁一样团队,因为在追逐目标的路上,“蚂蚁团队”可以原谅一个错100次的蚂蚁成员,而“狮子团队”错一次就有可能出局。可见,团队力量的获得与体积和勇猛无关,与团结有关。
六、团队权力
“什么是权力?一个人犯了罪,法官依法判他死刑,这其实不叫权力,这叫正义。而一个人同样犯了罪,皇帝可判他死刑,也可以不判他死,于是皇帝赦免了他,这就叫权力!”,所以,当团队成员做出了对团队不利的事情是,包容远远要比批评收获的更多。
七、关于团队批评
再和风细雨的批评也是酸的,就像是降临在员工身上的一场酸雨。批评本身就是一种打击,会消磨员工的自信,使员工开始否定自己。有一种聪明的批评方法,透漏了圆滑的人际关系处理方式,那就是“三明治法则”:在批评下属时要先称赞,即责备前称赞一件,责备后称赞一件,而把责备夹在中间。
八、关于团队事业
在团队粗文化形成的阶段,团队成员的内心有一个问题必须回答:“什么是事业?”我经常都是这样回答的:“事业就是把你不喜欢做的事情做好,然后再坚持把你喜欢做的事做下去;坚持是很重要的,一个人事业的成败往往取决于坚持,正所谓“成于坚持,而毁于放弃!”再通俗一点讲:能够值得连续做的事情就是事业。”
九、团队发展的原则
1、核心文化获得团队价值的吸引力;
2、目标明确获得合理分工的引导力;
3、坚持到底获得认真负责的行动力;
4、大爱无疆获得高度信任的凝聚力;
5、不耻下问获得高效进取的成长力;
6、高瞻远瞩获得与时俱进的教导力;
7、聆听而至获得热情豁达的沟通力;
8、科学决策获得顾全大局的思考力;
十、关于团队的“高绩效”
1、形成人心所向的价值观,引导团队成员自动自发的工作。
2、目标清晰,给团队成员“现在与未来”的准确定位。
3、只给困难找方法,不给失败找理由,养成不断地帮助团队解决问题的习惯。
4、具备“真诚、团结、宽容、无我”的协作精神。
5、业务熟练、技术过硬。
十一、团队领导力的形成
1、自我成长与临危受命;
2、服从与探索;
3、大胆实践与风格形成;
4、管理创新和与时俱进;
5、人性理解与无为而治。
十二、团队成员的管理
1、养成成为榜样的习惯;
2、养成团队利益高于一切的习惯;
3、养成服从制度的习惯;
4、养成普及职业化的习惯;
5、养成不找理由,没有借口的执行习惯;
6、养成随时随地传承团队文化的习惯;
7、养成勇于创新、敢于承担责任的习惯;
8、养成在团队中不断修炼自我,追求专业化的习惯。
十三、团队管理的定律
1、轻财足以聚人;
2、律己足以服人;
3、量宽足以得人;
4、身先足以率人。
十四、团队信任的维度
1、信守承诺(做人);
2、积极主动(做事和能力);
3、信念第一(态度)。
十五、团队执行力的法则
1、高水平的团队战略共识;
2、高素质的团队战略协同;
3、科学系统的团队战略管控;
十六、关于团队创新
1、“爱”自己的团队,“爱”是创新之源;
2、有意愿为团队解决问题是创新之因;
3、打开思维空间是团队创新之本;
4、不畏惧失败是团队创新之举;
5、敢于承担责任是团队创新之贵。
十七、关于团队成员的心态
1、为能否得到组织和上司的信任而变;
2、为追求虚荣而变;
3、为未来的发展而变;
4、为现在的利益而变;
5、为自已梦想而变;
6、为权力而变;
7、为逃离痛苦而变;
8、为追求快乐而变;
9、会受环境影响而变;
10、受情绪影响而变;
11、为情所困时变;
12、面对压力时变。
十八、团队听字诀
立不正方,不听;面无微笑,不听;目无接触,不听;心无尊重,不听;情绪激动,不听;持有偏见,不听;打断对方,不听;妄下结论,不听。
十九、团队学字诀
你可以拒绝学习,但你的竞争对手绝对不会;拒绝学习就是衰老的标志;学习如逆水行舟,不进则退;学习是充满思想的劳动;学史使人明智,学诗使人灵透,学而不思则罔,思而不学则殆;不吃饭则饥,不学习则愚;读书先备笔,知行要合一;知识是力量的源泉,学习是最赚钱的投资!
二十、团队管理心法
以力服人只能使人慑服,以才服人可以使人折服,而以徳服人则能使人心服!
员工做到这样 必将获得高位
一、忠诚——忠心者不被解雇
他会成为单位这个铁打营盘中最长久的战士,而且是最有发展前景的员工。
1.站在老板的立场上思考问题;
2.与上级分享你的想法;
3.时刻维护公司的利益;
4.琢磨为公司赚钱。
二、敬业——每天比老板多做一小时
随着社会进步,人们的知识背景越来越趋同。学历、文凭已不再是公司挑选员工的首要条件。很多公司考察员工的第一条件就是敬业,其次才是专业水平。
1.工作的目的不仅仅在于报酬;
2.提供超出报酬的服务与努力;
3.乐意为工作作出个人牺牲;
4.模糊上下班概念,完成工作再谈休息;
5.重视工作中的每一个细节。
三、自动自发——不要事事等人交代
不要事事等人交代,一个人只要能自动自发地做好一切,哪怕起点比别人低,也会有很大的发展,自发的人永远受老板欢迎。
1.从“要我做”到“我要做”;
2.主动分担一些“分外”事;
3.先做后说,给上司惊喜;
4.学会毛遂自荐;
5.高标准要求:要求一步,做到三步;
6.拿捏好主动的尺度,不要急于表现、出风头甚至抢别人的工作。
四、负责——绝对没有借口,保证完成任务
用于承担责任的人,对企业有着重要的意义,一个人工作能力可以比别人差,但是一定不能缺乏责任感,凡事推三阻四、找客观原因,而不反思自己,一定会失去上级的信任。
1.责任的核心在于责任心;
2.把每一件小事都做好;
3.言必信,行必果;
4.错就是错,绝对不要找借口;
5.让问题的皮球至于你;
6.不因一点疏忽而铸成大错。
五、注重效率——算算你的使用成本
高效的工作习惯是每个可望成功的人所必备的,也是每个单位都非常看重的。
1.跟穷忙、瞎忙说“再见”;
2.心无旁骛,专心致志;
3.量化、细化每天的工作;
4.拖延是最狠毒的职业杀手;
5.牢记优先,要事第一;
6.防止完美主义成为效率的大敌。
六、结果导向——咬定功劳,不看苦劳
“无论黑猫、白猫,抓得到老鼠就是好猫!”,无论苦干、巧干,出成绩的员工才会受到众人的肯定。企业重视的是你有多少“功”,而不是有多少“苦”。
1.一开始就要想怎样把事情做成;
2.办法永远要比问题多;
3.聪明地工作而不仅仅是努力工作;
4.没有条件,就创造条件;
5.把任务完成得超出预期。
七、善于沟通——当面开口,当场解决
不好沟通者,即便自己再有才,也只是一个人的才干,既不能传承,又无法进步;好沟通者,哪怕很平庸,也可以边干边学,最终实现自己的价值。
1.沟通和八卦是两回事;
2.不说和说得过多都是一种错;
3.带着方案去提问题,当面沟通,当场解决;
4.培养接受批评的情商;
5.胸怀大局,既报喜也报忧;
6.内部可以有矛盾,对外一定要一致。
八、合作——团队提前,自我退后
团队提前,自我退后。不管个人能力多强,只要伤害到团队,公司决不会让你久留——不要认为缺了你一个,团队就无法运转!
1.滴水融入大海,个人融入团队;
2.服从总体安排;
3.遵守纪律才能保证战斗力;
4.不做团队的“短板”,如果现在是,就要给自己“增高”;
5.多为别人、为团队考虑。
九、积极进取——永远跟上企业的步伐
个人永远要跟上企业的步伐,企业永远要跟上市场的步伐;无论是职场还是市场,无论是个人还是企业,参与者都不希望被淘汰。为此就一定要前进,停就意味着放弃,意味着出局!
1.以空杯心态去学习、去汲取;
2.不要总生气,而要争气;
3.不要一年经验重复用十年;
4.挤时间给自己“增高”、“充电”;
5.发展自己的“比较优势”;
6.挑战自我,未雨绸缪。
十、低调——才高不必自傲
才高不必自傲,不要以为自己不说、不宣扬,别人就看不到你的功劳。所以别在同事面前炫耀。
1.不要邀功请赏;
2.克服“大材小用”的心理;
3.不要摆架子耍资格;
4.凡是人,皆须敬;
5.努力做到名实相符,要配得上自己的位置;
6.成绩只是开始,荣誉当作动力。
十一、节约——别把老板的钱不当钱
节约不是抠门,而是美德。不要把公司的钱不当钱,公司“锅”里有,员工“碗”里才有;同样,“锅”里多,“碗”里也自然就多。而掌勺的,恰恰就是你自己。
1.报销账目,一定要诚信;
2.不耍小聪明,不贪小便宜;
3.不浪费公司的资源,哪怕是一张纸;
4.珍惜工作的每一分钟时间;
5.每付出成本,都要力争最大收益;
6.记住:省下的,就是利润!
十二、感恩——想想是谁成就了今天的你
为什么我们能允许自己的过失,却对他人、对公司有这么多的抱怨?再有才华的人,也需要别人给你做事的机会,也需要他人对你或大或小的帮助。你现在的幸福不是你一个人就能成就的。
1.老板给了你饭碗;
2.工作给你的不仅是报酬,还有学习、成长的机会;
3.同事给了你工作中的配合;
4.客户帮你创造了业绩;
5.对手让你看到距离和发展空间;
6.批评者让你不断完善自我。
简洁优雅的命令行工具 homebrew-cask
简洁优雅的命令行工具 homebrew-cask
使用homebrew-cask安装软件,只需要一行命令
brew cask install sublime-text skitch dropbox google-chrome
这样以下就安装了4个软件,轻松搞定,不需要鼠标点击,no dragging, no dropping。
* 命令行?好像很高大上的赶脚,我能学会吗? *
homebrew-cask是一套建立在homebrew基础上的Mac软件安装命令行工具(想要详细了解homebrew,自己google)。拥有她只需要简单的3步:
- 安装Xcode(Mac App Store免费一键下载)
- 安装homebrew(一行命令直接搞定,easy)
- 安装homebrew-cask(也是一行命令搞定,一点难度都木有)
不要一听到是命令行
就被吓到,其实没有那么复杂,命令行
你就简单理解为你输入一行一行指令,指令对了系统就会去执行,用狗血的拟人比喻,就是你让计算机去干活,只要命令
下得对,它就屁颠屁颠卖命去了。
1. 安转Xcode
Xcode安装现在已经非常简单,打开「Mac App Store」,又上角搜索 xcode
就可以找到,点击安装,耗时较长耐心等待。
这一步是鼠标操作,很简单,就这样跳过了。
2. 安装homebrew
homebrew的官网是http://brew.sh/,上面有简体版本,可以了解以下homebrew是干啥的,但回到安装的正题,一行命令安装:
先打开 Terminal
,找不到的可以点击Mac屏幕右上角的放大镜(这货是传说中的Spotlight),然后输入terminal
回车就能直接打开。
打开Terminal
后,把下面的一样命令复制粘贴到里面,按下回车:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
屏幕一堆英文乱闪之后,就搞定了(命令提示符号回到原来的样子)。
3. 安装homebrew-cask
还是那个「Terminal」窗口,再把下面的命令复制粘贴过去,按下回车。
brew tap phinze/homebrew-cask && brew install brew-cask
在安装brew-cask的时候,会要求你输入当前用户的密码,输入过程中不会有屏幕反馈,你就闭着眼睛输入,然后回程就可以。
又一大波文字乱闪,OK啦。
如何使用homebrew-cask
需要安装应用时,打开「Terminal」,输入
brew cask install XXX # 将XXX替换成你想要安装的软件名称就可以了
下面做个示范:
* 常用命令 *
brew cask search
列出所有可以被安装的软件brew cask search drop
查找所有和 drop 相关的应用brew cask info thunder
查看 迅雷 应用的信息,这货安装的可是最新版本的迅雷哦!brew cask uninstall qq
卸载 QQ
特别注意 homebrew-cask是将应用程序放置在
/opt/homebrew-cask/Caskroom/
下,会在你的家目录中的「应用程序」文件夹中创建一个类似快捷方式的替身。在Finder的偏好设置中,第三个侧边栏勾选上你的家目录,这样找应用会方便一些。但不用太担心你,Launchpad是会找到这个目录下的应用的,需要Alfred支持请查看brew cask alfred
。
homebrew-cask vs Mac App Store
homebrew-cask 和 Mac App Store 相比,目前还有很多优势:
- 安装软件体验非常一致简洁优雅
- 对常用软件支持更全面,例如 MPlayerX 已经宣布不在更新 Mac App Store上 的版本
- 软件更新速度快,体验好。例如Alfred 2.0已经出了很久,但在 Mac App Store 上还是1.2版本,QQ也是这样的情况
当然我承认,命令行的交互方式并不是人人都能学会和接受,homebrew-cask其实已经做的足够简单易用,习得这一技能能在以后提高效率。homebrew-cask安装省时省力,更新应用也简单,不用一个一个去找,其实先花时间学习,是值回本钱的,大家自己算算这笔帐。
Mac App Store 生态圈远不完善,审核流程过长,限制太多,维护成本过高让很多应用开发者被迫离开。虽然我个人很喜欢 homebrew-cask,但还是希望 Apple 尽快完善 Mac App Store ,等到有一天我可以不再使用 homebrew-cask。这样说是不是显得我很薄情?:)
关于软件更新
homebrew-cask团队一直还在探讨软件更新策略,以及homebrew-cask与homebrew的关系。目前倾向于:
- homebrew-cask作为软件安装工具体验是不错的(相比你要自己到网页上搜索,下载,拖转安装)
- 大部分软件都有自更新的功能,体验也不错,绝大多数只需要一次点击就能更新
- 实际上软件更新没有那么频繁,使用
brew cask uninstall qq && brew cask install qq
也比上网自己下载更新方便
软件更新的结论
目前通过homebrew-cask安装的软件有两种更新方法:
- 使用软件自己的更新流程
brew cask uninstall APP && brew cask install APP
先删除App,再重新安装
详细情况可以围观这个讨论帖子: brew cask upgrade, 具体看 第2条 和 第5条 评论。
一键装机?有了homebrew-cask就可以
# 到目前October 5, 2013 1:43 PM为止,homebrew-cask共收录566款应用程序 # 瞬间安装所有常用软件 brew cask install alfred brew cask install the-unarchiver brew cask install qq brew cask install line brew cask install skype brew cask install thunder brew cask install mplayerx brew cask install evernote brew cask install skitch brew cask install dropbox brew cask install google-chrome brew cask install mou brew cask install iterm2 brew cask install sublime-text brew cask install virtualbox