Submitted by gouki on 2010, July 11, 9:01 AM
关于linux下发短信,我是找到这篇 文章,但是我想要的只是一点点啦。因为我是用SP接口。
先上他的内容,然后我把我当初做的列出来,原文是在:http://www.cnblogs.com/pipc/archive/2010/07/11/1775007.html:
前段时间为用户提供VPN 和SSH 服务,消息的都是通过电子邮件发送的。没有短信的快捷和实时性,决定搭建自己的短信平台。
在此之前我也用过其他服务商提供的短信平台,都有各种各样的问题。
其中短信平台存在的问题:
1、发送短信有时段限制,有些短信通道只能在 上午8点 到晚上8点发送,如果遇到夜间的紧急时间需要发送短信就无能为力了,比如服务器当机、MSSQL数据库日志满了、系统盘空间不足。 在Linux 下磁盘空间不足会照成MySQL启动失败。
2、通过通道发送短信限制十分严格,相对于个人手机,进行关键词屏蔽非常厉害, 比如 “发票”、“还钱”、“你妈”有些常用词都不能发。 句子里包含关键词都发送失败, “我中午去打印手机话费发票”、“听说你妈住院了,现在身体好吗?”, 通过个人手机限制的就不严格。
3、通道拥挤的情况,因为这些通道一般都是提供批量发送广告的, 一次发送1万条,10万条都很正常。 如果这个时候你发送短信,只能排在消息队列的最后。 通常延时20分钟到4小时。
4、通道设备故障,因为各种情况照成的消息队列内的短信丢失。 你调用API接口发送短信,短信状态时成功的,由于平台的故障照成短信没有发送成功,而且你得不到错误的状态,费用照扣。
5、扣量,各个短信平台情况不一样, 价格比较低的扣量比较严重, 比如你群发 10万条, 前 5000条100%发送, 5000 -1万条 发送 95%, 1万-2万条 发送 90%, 到10万条的时候55% 甚至更低。
发送短信一般有2种方法, 一种是通过短信通道发送, 还有就是自己购买设备发送短信。
申请单独的短信通道要求比较高,一般在10-30万费用,比较大型的公司才会申请,比如银行、证劵等, 发送的号码都是95555 ,96000等, 还有就是106557**** 这样的通道。 申请的费用较少,一般几千元就可以申请到。 通道提供商业一般提供2种接口, 一种是API接口,通过API发送短信,比如http://www.pipc.net/sms/send.aspx?id=130130****& amp;msg=测试短信 ,还有一种数据库接口,你可以连接到数据库直接把消息插入相关的表中。
--EOF--
因为我是采用的购买的SP的服务。因此,发送短信就相当于类似上面的方法了。不过我也想过接收短信,是采用原文中下面的方式(http://www.cnblogs.com/pipc/archive/2010/07/11/1775007.html)【我这里不一一介绍】
我具体是在linux下面跑一个cron任务,这样可以一直从队列里进行发送短信。大多数情况下我们是即时发送的,只是有时候会有堵塞,这时候我们就扔到队列里(当然,是需要返回结果不是手机号码不正确的原因才会扔到队列里,如果手机号码都不对了,扔到队列里也发送不了。)
接收短信,只要在任何一台机器上搞一个移动猫,用任何程序都可以定时读取信息。如果是接收到相应的代码就触发一些操作。有这种功能就免得你买一些需要接收固定号码的SP了,那样的价格高很多呢。
Tags: sms
Linux | 评论:0
| 阅读:19836
Submitted by gouki on 2010, July 10, 8:45 PM
本文来自:http://www.phpv.net/html/1712.html,有点意思。纯属一笑吧,不过有时候看着也是一种悲哀。
如果你是一个程序员, 或者你就读计算机相关专业, 那么你应该能理解下面这些诡异的小习惯是怎么养成的, 或者你本身就有着其中的某些习惯:
0. 程序员数数会从0开始数起.
例: 程序员吵 架的时候会说: “我数三下, 你再不闭嘴我就不客气了! 零! 一! 二!” 或者列清单的时候编号会从0.开始写.
因: array[0]是数组的第一个元素.
评: 这个习惯的养成是一个艰难的过程. 多少次的越界, 多少次的循环次数错误让我们深深的记住了从0开始.
1. 程序员用肯定和否定 回答选择性的问题.
例: 问 “您想喝咖啡还是喝茶?” 程序员答: “嗯.”
因: 当条件或||有一个子句值为真, 则整个语句值为真.
评: 这个习惯夸张了一点, 但这的确是程序员思 维方式的通病, 用计算机的处理逻辑处理人类问题. 当然这样的回答显然是存在编程错误的, 因为对于这个问题他错误的返回了布尔型的值. 虽然高度怀疑有没有人关心这种回答的结果是怎样, 还是给出一个答案. 如果真的在程序的世界里, 服务员会优先考虑给你咖啡, 如果没有咖啡了, 才会端茶给你.
2. 程序员普遍患有或曾经患有分号结尾综合症;
例: 比如这几行;
因: 大部分程序, 特别是多数程序员的启蒙编程语言C语言是用分号结尾语句的;
评: 换行之前习惯用分号结尾, 这是程序员专 属的坏习惯. 还记得编译报的各种诡异的错最后原因总是少了那一个小小的”;”吗? 这就是这个坏习惯的成因. 据说分号结尾是有典故的, 因为键盘上的分号正好在右手小拇指的位置, 比起句号之类有着得天独厚的地理优势. 当然也有不需要分号结尾的编程语言(比如Ruby还有Python), 刚用起来会因为没有分号结尾而格外纠结.
3. 程序员对”语言”的概念和普通人有差.
例: 问: “你都会哪些语言?” 普通人: “我会汉语和英语, 还会一点点法语.” 程序员: “我会C语言, C++ 和 Java, 还会一点点Ruby.”
因: 程序员的世界里没有母语和外语, 只有编程语言.
评: 说真的, 程序语言的语法学起来比外语更容易, 拿到一个用没学过的语言写的程序, 你多少可以看懂部分程序. 程序语言没有国界, 是各国程序员交流最好的桥梁.
4. 程序员格外格外的厌恶括号/引号不配对的情形.
例: 看到这样的内容 (举个简单的例子(我知道你懂的), 你能表示”我很淡定我不抓狂吗?
因: 各种不配对问题会导致编译错误.
评: 扫视代码, 对不配对的情况异常敏感, 瞥一眼就能发现哪里少了个右括号. 这种症状在使用那些带自动补全功能的开发环境时变得更为纠结.
5. 程序员认为 千(k) == 1024.
例: 程序员换算表: 1km == 1024m, 1kg == 1024g.
因: 成因很曲折 计算机是二进制的世界 -> 1024是2的10次方 -> 英语里用kilo一词来表示 -> kilo翻译成中文是”千”, 比如千米, 千克.
评: 也许一般人会认为500, 1000是很整的数, 但程序员会觉得512, 1024是很整的数. 不要奇怪, 如果128, 256, 512这种形式看着不够整, 帮你转换成二进制: 10000000, 100000000, 1000000000…
6. 程序员惯用 == 来表示相等的意思.
例: 见5.
因: 在程序语言中, “=” 是赋值, “==” 才用来判断二者是否相等.
评: 单等和双等的区别是程序入门必修课, 也是老师爱考的考点. 如果在C语言if语句的判定条件里写了个单等, 编译能通过, 结果却往往不对, 够一个新手查上一阵子的. 当然目前的语言大都考虑到这一点, 防止了这类的误写, 但是单等和双等的差异已经深入每个程序员的 内心.
7. 程序员使用”//”表示”请无视这一行文字”.
例: 餐厅中. 程序员A: “我吃鱼香肉丝盖饭, 你吃什么?”
程序员B: “宫保鸡丁盖饭.”
程序员A 在点菜单写上:
鱼香肉丝盖饭 1
宫保鸡丁盖饭 1
程序员B: “我还是要牛肉面吧!”
程序员A 更正点菜单:
鱼香肉丝盖饭 1
// 宫保鸡丁盖饭 1
牛肉面 1
因: 程序中用”//”为代码加上注释, 程序运行时会无视掉”//”开头的代码行.
评: 如果和一伙程序员在一起时被冷落了, 可以抱怨一句”喂喂喂我是被注释掉了吗?” 相信一向以幽默感丰富又有爱心著称的程序员们会关注你的.
8. 程序员有 中文标点恐惧症.
例: 如果你注意到了, 这篇文章自始至终都在使用英文标点, 这就是最好的例子.
因: 程序中的全部符号都严格需要是英文半角标点.
评: 这个坏习惯是有中国特色的, 中国程序员特 有的. 任何一名优秀的我国程序员都应该可以作到区别中文标点和英文标点. 比如, 和,还有 ’和 ‘. 真的, 当年初学编程的时候, 诸如 “error C2018: unknown character ’0xa3′” 的错误看得还不够多吗!
就是这样一群人, 如果你慢吞吞的用电脑他们会急躁的抢过键盘熟练的使用各种快捷键, 他们会对着小孩子讲计算机的三原色是红绿蓝而不是红黄蓝, 他们描述大小距离更偏向于以像素作单位, 陪女朋友看电影看到电影院座位上稀稀落落的人就想做磁盘碎片整理…抱怨归抱怨, 这不也正是他们的可爱之处吗!
Tags: 杂谈
PHP | 评论:1
| 阅读:17319
Submitted by gouki on 2010, July 9, 2:33 PM
jquery easyUI框架是国内某JS牛人写的仿extJS的框架。比较简单的实现一些功能,虽然目前还是有一些BUG,但将就着用用,也还能够接受。
YiiFramework是国内某PHP牛人写的php框架,哦,好象人不在国内。最近用的人较多。本人比较喜欢他们提供的虚拟机(只有16M,当然,安装后达到100多M)
随便的整合了一下,目前是这个情况。
几个问题需要注意一下的
1、layout的时候要注意。因为easyUI框架里面的页面也需要用到jquery,因此在布局的时候得考虑header部分
2、登录框,与1的条件相关
3、$this->render与$this->renderPartial ,renderPartial是不渲染任何模版的。如果你不想用layout的时候,可以用这个renderPartial方法
其它的就属于一些小事了,比如菜单可以用json_encode输出之类的。前两天还写了一个jquery easyUI这个outlook式的menu改进。
整体用下来还算比较方便
Tags: yii, jquery, easyui
PHP | 评论:2
| 阅读:39074
Submitted by gouki on 2010, July 8, 7:32 AM
首次发文还是遇到了不少问题,比如编辑器中的iframe无法正确认出,只能在源码模式下编辑。
等用电脑后补全这些问题吧
主要是焦点无法显示
【后记】
用ipad一般情况下还是可以的。但是对于这种所见所得编辑器,焦点无法聚集在里面。也就无法输入中文了。(编辑器上的按钮都可以点)
平时正常的登录退出一切都没有问题(而且对于input框还会提示下一个上一个,非常方便)
登录速度也挺快
最后:麦当劳免费半小时上网还是挺爽的。每人每天半小时。
Tags: ipad
Misc | 评论:0
| 阅读:17042
Submitted by gouki on 2010, July 7, 9:49 AM
张宴遇到的问题,我没有遇到过,只是以前知道,mysql在varchar类型插入的时候,会把字符串末尾的空格取消的(难道我记错了?),char的没记。不过按照char的类型,他是会用空格补全长度。所以,即使没空格也会多出空格。但,用PHP取出来后,我就没有注意过了。。。
下面是张宴遇到的问题,不过我觉得还是有必要用PHP实现一下看看究竟怎么回事。。。
同事下午遇到一问题,MySQL 和 Memcached 对于同一个key,不能对应起来。最终原因是:PHP将key写入MySQL数据库之前,没有经过trim()过滤首尾空格(关键是尾部空格),结果:
1、MySQL的varchar、char类型字段,SELECT .... WHERE 查询时忽略字段的尾部空格。例如varchar类型字段uidcode中,存储的含有尾部空格的内容“rewinx ”,通过以下三种方式均可查询到:
在MySQL手册第“11.4.1. CHAR和VARCHAR类型”节中写道(http://dev.mysql.com/doc/refman/5.1/zh/column-types.html#char): 请注意所有MySQL校对规则属于PADSPACE类。这说明在MySQL中的所有CHAR和VARCHAR值比较时不需要考虑任何尾部空格。请注意所有 MySQL版本均如此,并且它不受SQL服务器模式的影响。
2、PHP 的 Memcache 扩展,则在set、get时,自动将key中的空格,转换成了半角下划线“_”。当然,直接通过 Memcached 协议来读取,key值“rewinx ”就要写成“rewinx_”了。
示 例:testmc.php
PHP代码
- <?php
- $memcache_obj = new Memcache;
- $memcache_obj->connect('192.168.8.34', 11211);
- $memcache_obj->set('rewinx ', 'hello world');
- echo $memcache_obj->get('rewinx ')."\r\n";
- ?>
Tags: mysql, memcached
PHP | 评论:1
| 阅读:20603