手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

小菜谱

 想不到,我的http://xiaocaipu.com还没有上线,我的微信功能却已经正常在运作了。

打开微信搜索好友,如果按帐号添加,就搜索:xiaocaipu,如果搜索公众帐号,就搜:小菜谱。当然,你懒的话,就扫描这个:
大小: 31.05 K
尺寸: 376 x 376
浏览: 1548 次
点击打开新窗口浏览全图
小LOGO是http://82982.com的小茗帮忙做的。。那一群设计师的朋友啊什么的,都说自己没空,我纠结啊。
 
不知道这个帐号是做什么的?那我得上好多图了。。。
先上两个简单的图吧
大小: 436.27 K
尺寸: 251 x 376
浏览: 1601 次
点击打开新窗口浏览全图
大小: 431.13 K
尺寸: 251 x 376
浏览: 1564 次
点击打开新窗口浏览全图
 
这些只是基础功能,还有相对比较高级一点的功能:
大小: 410.32 K
尺寸: 251 x 376
浏览: 1586 次
点击打开新窗口浏览全图
大小: 432.41 K
尺寸: 251 x 376
浏览: 1549 次
点击打开新窗口浏览全图
大小: 440.51 K
尺寸: 251 x 376
浏览: 1524 次
点击打开新窗口浏览全图
大小: 467.44 K
尺寸: 251 x 376
浏览: 1562 次
点击打开新窗口浏览全图

Tags: 小菜谱

转:PHP中利用pcntl实现多进程(模拟多线程)实例

 pcntl在很久很久之前就听过了,但是一直没有尝试着真正要用它。这不,遇到socket问题了,看socket,遇到pcntl了,再看看吧。

这里是某个人的测试代码:
PHP代码
  1. <?php  
  2. /** 
  3.  * 创建子进程入口 
  4.  * @author selfimpr 
  5.  * @blog http://blog.csdn.net/lgg201 
  6.  * @mail lgg860911@yahoo.com.cn 
  7.  * @param $func_name 代表子进程处理过程的函数名 
  8.  * @param other 接受不定参数, 提供给子进程的过程函数. 
  9.  */  
  10. function new_child($func_name)  
  11. {  
  12.     $args = func_get_args();  
  13.     unset($args[0]);  
  14.     $pid = pcntl_fork();  
  15.     if ($pid == 0) {  
  16.         function_exists($func_nameand exit(call_user_func_array($func_name$args)) or exit(-1);  
  17.     }  
  18.     else if ($pid == -1) {  
  19.         echo "Couldn’t create child process .";  
  20.     }  
  21. }  
  22. //测试处理函数, 输出$prefix连接的数组    
  23. function test($prefix$num)  
  24. {  
  25.     while ($i++ < $num) {  
  26.         echo $prefix . $i ."\n";  
  27.     }  
  28. }  
  29. //创建一个子进程    
  30. new_child("test""child process ", 100);  
  31. //父进程也开启一个与子进程同样多的循环.    
  32. test("parent process", 100);  
  33. //运行结果, 我这里运行父进程输出50个左右, 子进程开始运行.    
  34. ?>    
因为上面有作者有注释,所以我就不再多贴这篇文章的地址了。原网页的代码是错误的。我改了一下。原作者说的是:父进程输出50个左右时,子进程就开始运行了。我这边不是。我把数据改成1000后,发现父进程在950多的时候,子进程开始运行了。
原作者的博客上还有一个详细介绍:PHP扩展pcntl(进程控制以及信号处理)中文文档 
 
当然,看手册也可以,对了,风雪之隅也写过类似的文章,http://www.laruence.com/2009/06/11/930.html,他提到的优点就是:
XML/HTML代码
  1. 优点:  
  2.     1. 使用多进程, 子进程结束以后, 内核会负责回收资源  
  3.     2. 使用多进程,子进程异常退出不会导致整个进程Thread退出. 父进程还有机会重建流程.  
  4.     3. 一个常驻主进程, 只负责任务分发, 逻辑更清楚.  
然后他的代码就与上面有点区别,不过说白了还是大同小异:
PHP代码
  1. #!/bin/env php  
  2. <?php  
  3. /** A example denoted muti-process application in php 
  4. * @filename fork.php 
  5. * @touch date Wed 10 Jun 2009 10:25:51 PM CST 
  6. * @author Laruence<laruence@baidu.com> 
  7. * @license http://www.zend.com/license/3_0.txt PHP License 3.0 
  8. * @version 1.0.0 
  9. */  
  10.    
  11. /** 确保这个函数只能运行在SHELL中 */  
  12. if (substr(php_sapi_name(), 0, 3) !== 'cli') {  
  13.     die("This Programe can only be run in CLI mode");  
  14. }  
  15.    
  16. /** 关闭最大执行时间限制, 在CLI模式下, 这个语句其实不必要 */  
  17. set_time_limit(0);  
  18.    
  19. $pid = posix_getpid(); //取得主进程ID  
  20. $user = posix_getlogin(); //取得用户名  
  21.    
  22. echo <<<EOD  
  23. USAGE: [command | expression]  
  24. input php code to execute by fork a new process  
  25. input quit to exit  
  26.    
  27.         Shell Executor version 1.0.0 by laruence  
  28. EOD;  
  29.    
  30. while (true) {  
  31.    
  32.         $prompt = "\n{$user}$ ";  
  33.         $input = readline($prompt);  
  34.    
  35.         readline_add_history($input);  
  36.         if ($input == 'quit') {  
  37.                break;  
  38.           }  
  39.         process_execute($input . ';');  
  40. }  
  41.    
  42. exit(0);  
  43.    
  44. function process_execute($input) {  
  45.         $pid = pcntl_fork(); //创建子进程  
  46.         if ($pid == 0) {//子进程  
  47.                 $pid = posix_getpid();  
  48.                 echo "* Process {$pid} was created, and Executed:\n\n";  
  49.                 eval($input); //解析命令  
  50.                 exit;  
  51.         } else {//主进程  
  52.                 $pid = pcntl_wait($status, WUNTRACED); //取得子进程结束状态  
  53.                 if (pcntl_wifexited($status)) {  
  54.                         echo "\n\n* Sub process: {$pid} exited with {$status}";  
  55.                 }  
  56.         }  
  57. }  
做个笔记。
 
 
 
 

Tags: 多进程, pcntl

socket and soap

 其实本来不想定这个标题的。只是做了几个小小的测试

我用php实现了socket server,然后在命令行下做了点测试。在命令行下访问soap,并将返回值 给了客户端。

测试了一下。网速比较卡的情况下,基本在0.8秒左右 

然后我直接访问soap,打印出来的时候都差不多比命令行返回结果多了0.2秒。

这只是测试了soap请求一次。后来,我请求了两次。发现速度又快了0.1秒。

总计快了0.3秒。在命令行下用socket server返回数据好象快了一点。

-----------

文章只是我的一次记录,没有什么特别的意义。虽然不太科学,但对我来说,有三四台服务器的情况下,利用这个来交换数据还是有点用的。目前我的socket server只能用PHP实现,因为 部分代码都是靠PHP来获取数据的。本来想用go或者python来实现的,但目前没有时间。先用PHP了

 

 

备份:PhpStorm字体修改终极方案

 很久没有改过phpstorm的配色和字体方案了。小伟说,如果字体是12,那就是正常的。如果放到14就不太正常了。。。

然后找到了这个win下的配色方案,先备份一下,万一哪天就用win了呢。
原文来自:[查看](如果打不开,请直接搜索phpstorm即可),
 

其实phpstorm的字体修改跟netbeans是一模一样,  不同之处在于netbeans使用的是系统jre, 而phpstorm使用的自身的jre — window系统下是这样.

修改步骤如下.

1. 进入phpstorm安装目录下的jre, 如 PhpStorm 4.0.3\jre\jre\lib

2. 将该目录下的fontconfig.properties.src复制一份文件fontconfig.properties,并放在该目录下

3. 编辑文件fontconfig.properties,查找到下面一行:

sequence.monospaced.GBK=chinese-ms936, alphabetic,dingbats,symbol

修改成:

sequence.monospaced.GBK=alphabetic,chinese-ms936,dingbats,symbol

保存该文件后启动phpstorm, 在settings里的Editor – Colors & Fonts – Fonts里选择Monospaced字体, 大小16左右.

保存后就能看到一个完美的中英文编辑界面了.

--------

不过我用的字体和他不一样。不过也能做参考 .。

Tags: phpstorm

dash的一个小配置文件

 软件名叫DASH,这个plist文件是老鬼发我的,还不错。

 
com.kapeli.dash.plist
 
看手册是方便了。

Tags: dash