在BAE下利用BCms给手机发送短信

最近拿到了bae的邀请码,自然要好好折腾一下。发现bae中有个好功能叫做bcms,可以给任意手机号码发短信,免费配额是1k条/月,应该足够使用了。

代码在bae上部署很方便,如下:

<?php
require_once 'Bcms.class.php';
$bcms = new Bcms();
$bcms->sms(<队列名字>,<要发送的消息>,json_encode(<收件人数组>));

如果不在BAE上部署BCMS的代码,可以参考CplusHua在他的博文:BAE消息队列发送短信中提到的方法。

【消息速递&360安全快递】私有API

最近在研究如何给自己的手机方便的Po信息,于是发现360安全快递和消息速递两款产品。

简单的对网页进行抓包后给出api分析如下:(没有研究文件上传)

消息推送
 
content=内容
domains=推送号
nickname=推送签名
permitcode=授权码
 

360安全快递
 
content=内容
toid=原始快递号(系统分配的那个,可以通过http://kuaidi.360.cn/dev/get/?tokey=来获取)
tokey=快递号,建议使用和toid相同的数据
permitcode=授权码的md5值
signature=目前无用,推测和消息推送一样用于签名

消息推送的服务器只接受post的请求,而360安全快递可以接收POST/GET的请求。

ps.消息推送推出的discuzx插件中也有一个供discuzx专用的api,具体懒得研究了。

#每日一个小代码#Windows主机也能伪静态

这里所说的伪静态并不是指用那个什么什么xml文件来实现,因为那个毕竟要比较高端的虚拟主机才有的……一般国内的“功能强大的控制面板”提供的全能空间是没有那么高端的。

再声明,这里给出的代码是以wordpress为例,其它程序请自行发散~

<?php
$qs = $_SERVER['QUERY_STRING'];
$_SERVER['REQUEST_URI'] = substr($qs, strpos($qs, ':80')+3);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?>

嗯,把上面这个文件存成404文件即可实现伪静态了……其实这个代码是网上找的,个人觉得并不是那么靠谱。个人觉得这样写就够了:

<?php
include('index.php');
?>

至于具体怎样……我手上没有Win主机啊,没法测试……谁能测试一下给我反馈?

ps.IE环境下Chito后台的编辑器还真不好用。

再ps. qi哥我用IE测试发现我博客的大图能够正常缩略显示啊……

#每日一个小代码#只允许中国用户访问

嗯用免费空间的孩子们经常会想去掉广告啊什么的,或者TOS里面明确写着不允许中文网站自己却偷偷的搭建中文站什么的很苦恼……嗯没关系,有了这个神器,再也不怕老外查站了!

$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
//获取访客语言,是HTTP头信息的ACCEPT_LANGUAGE的前两个字符
if($language != 'zh'){
//zh是中文,包括zh-CN简体中文和zh-TW正体中文
header("Location: /yourpage.html");
//这句代码是将用户转向到根目录的yourpage.html这里
exit;
//然后退出
}

简洁的几句话就将非中文用户阻挡在外了。这个yourpage.html里面可以写上:We're sorry but our web site is temporarily unavailable due to routine maintenance or unexpected technical problems. We apologize for the inconvenience and are quickly working to correct the situation. 这一看就很专业的英文报错了对吧……

其实还可以做进一步的发挥。原来不是有用Js代码识别语言去广告的吗?那样做如果老外查源码的话,就很容易发现了。其实如果用php的话,去广告可以更加隐蔽。比如kilu.de的去广告代码(在</body>前加上<noscript><noscript>)就可以把body标签替换为php代码如下:

<?php
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
if($language == 'zh'){
echo '<noscript><noscript>';
}
?>
</body>

这样的话,老外看到的源代码基本就不会出现js去广告那样的很明显的判定语言的语句了!

(这是昨天打算更新的忘记了……今天补上。所以今天还有一更哦~)

#每日一个小代码#利用Google翻译实现云TTS

之前看到一个能够将回复转换成声音的某个web服务,表示对原理很好奇。查了一些资料,发现php并不是很好实现tts。今天用Google翻译来听日语,突然想到用Google翻译的功能实现TTS。

稍微抓个包,得到地址:http://translate.google.cn/translate_tts?ie=UTF-8&q=字符串&tl=语言。直接写了个函数实现301转向,测试了下,发现如果有referer的话就会出现404错误。(Google真奇怪,为啥不是403……)

于是经典的file_get_contents法了,如下:

	function googletts($text,$lang='zh-CN'){
		header('Content-Type: audio/mp3');
		echo file_get_contents('http://translate.google.cn/translate_tts?ie=UTF-8&q=' . urlencode($text) . '&tl=' . $lang);
	}