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

通过file_get_contents来Post数据的实例

用file_get_contents来进行POST?很妖吧。
我也没有想到还有这种妖的东西。在向东的博客上看到这个的:http://www.xiangdong.org/blog/post/1623/

回忆未来?别惊讶,用他的话来说是山寨D。

原文:

file_get_contents.php: Post数据

PHP代码
  1. <?php  
  2. function Post($url$post = null)  
  3. {  
  4.     $context = array();  
  5.   
  6.     if (is_array($post))  
  7.     {  
  8.         ksort($post);  
  9.   
  10.         $context['http'] = array  
  11.         (  
  12.             'method' => 'POST',  
  13.             'content' => http_build_query($post'''&'),  
  14.         );  
  15.     }  
  16.   
  17.     return file_get_contents($url, false, stream_context_create($context));  
  18. }  
  19.   
  20. $data = array  
  21. (  
  22.     'name' => 'test',  
  23.     'email' => 'test@gmail.com',  
  24.     'submit' => 'submit',  
  25. );  
  26.   
  27. echo Post('http://localhost/5-5/request_post_result.php'$data);  
  28. ?>  
接收数据:

request_post_result.php  接收经过Post的数据:
PHP代码
  1. <?php  
  2. echo $_POST['name'];  
  3. echo $_POST['email'];  
  4. echo $_POST['submit'];  
  5. echo "fdfd";  
  6. ?>  


看一下,里面有一个特别的函数:stream_context_create,翻开手册看了一下,也没说什么呀,只是说:Creates and returns a stream context with any options supplied in options preset.

而file_get_contents呢?它说:

Note: Context support was added with PHP 5.0.0. For a description of contexts, refer to Reference CLX, Stream Functions.

关于Stream Functions,手册上这么描述的。。。

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Appendix O), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Chapter 52. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Appendix O for a list of PHP built-in wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Appendix O for a description of targets for built-in streams.

Tags: php, post

MySQL优化指导建议[不知道能不能发,所以加密]

这篇日志被加密了,请输入密码后查看。

公交见闻

昨天上班、下班乘公车发现有趣的事情还是挺多。人生都这样吧,大概。

上班的时候,乘856,有位仁兄和电子报站器同步播音。开始的时候我被吓了一跳,电子报站器怎么破音了?后来才发现是这位仁兄在辛苦的为公车乘客们提供方便。

晚上下班的时候,看到两个黄皮肤,黑眼睛的人在聊天,聊什么我没听懂,他们很投入,我也不能打断别人是吧。这一男一女兴致极高,知道我听不懂他们说的洋文,然后就很投入的在说。
那位男青年,说的是很流畅,女青年则非常生疏,几乎就是一个单词一个单词的往外蹦。很是乐此不彼。

感慨不算多。

顺便,听说户籍制度要改革了,但好象我并在制度范围内,可怜的。。。

Tags: 公交

iPhone 变身 Web 服务器

其实真的很吃惊,但后来想想,又觉得是可以接受的。试想Gphone连debian都能装上,这个iphone装一个web server又怎么样呢?
原文如下:http://apple4.us/2009/02/the-iphone-becomes-a-web-server.html

苹果经常在自己的广告里吹嘘,App Store 里的数万种应用几乎能让你的iPhone 无所不能,不过有时候他们的确不是在吹牛。

最新的一例就是,一款名叫 ServersMan@iPhone [App Store 链接] 的应用能够将你的 iPhone 变成一台功能成熟的 Web 服务器。该应用开发者是位于东京的 FreeBit 公司,该公司的主要业务是向其他虚拟网络运营商(VNO) 及互联网服务商(ISPs)提供网络平台。

当 iPhone 安装并启用这一应用后,普通的联网电脑能够像访问服务器一样通过网络浏览器访问该 iPhone 并上载或下载文件,甚至还可以使用 webDAV 协议。如果 PC 与 iPhone 处于同一个网络中,PC 可以直接连接到 iPhone ;如果 PC 与 iPhone 分别处于不同的网络中,FreeBit 的虚拟专用网络(VPN)软件能够帮助两者实现连接。

至于该应用的名字“ServersMan” 的来历,开发者称是源于索尼的 WalkMan,索尼公司前 CEO 出井伸之(Nobuyuki Idei) 目前是该公司的商业顾问。

ServersMan 应用目前仅限于日本的 App Store(日文版),开发者表示英文版将于 3 月份发布,此外针对 Windows Mobile 的另一个版本也在开发计划中。

Tags: iphone, webserver, gphone

HeadFirst设计模式学习笔记(C#版):鸭子与策略(Strategy)模式

总是有一些奇怪的事情发生,我刚刚买了<HeadFirst 设计模式>,就有人写了如题的一篇文章。
我是用PHP的,而书上讲的例子是用伪代码(以java为蓝本)的,我也没有看多少呢,也没有想过要来实现一下,因为有些东西使用PHP的话,只会效率更低,解释型的,IO能节约还是要节约一下。
总想等看完再实现这些(第一大章还没有看完呢。)

不过,既然有人写了,总要宣扬一下的吧,代码虽然不一样,但思想总是一样的。
我也没有仔细看,就权当收藏吧。。

链接如下:

HeadFirst设计模式学习笔记(C#版):鸭子与策略(Strategy)模式

讲了什么呢?
摘要如下:


    策略模式的设计原则如下:
    1.   将应用中需要经常变化的代码独立出来,应和那些不需要经常变化的代码分开。
    2.   应针对接口,而不是类进行编程。
    3.  在类中应多用组合,少用继承。

    例子:

    我们要实现一个鸭子模拟器,这个鸭子模拟器由Duck类描述,而Duck类有如下4个行为:
    1.  display
    2.  swim
    3.  fly(飞)
    4.  quack(叫)

    其中swim是所有鸭子都具有的特性,而且所有鸭子的这些特性都相同,因此,这个方法可以直接在Duck类中实现。display方法也是所有鸭子具有的 特性,但随着鸭子的种类不同,display也有所不同,因此,display方法应为Duck类的抽象方法。fly和quack并不是所有鸭子的特性, 如橡皮鸭子即不会飞,也不会叫。因此,可以将这两个方法看作是两个行为,可将每一个行为设计成一个接口。这样可以和Duck类完全脱离。因为,fly和 quack与Duck一点关系都没有(别的东西也可能fly和quack),然后不同的fly和quack分别用实现相应接口的类表示。

Tags: headfirst, 模式, 策略模式, strategy