file_get_contents版本: 1 /* * 2 * 发送post请求 3 * @param string $url 请求地址 4 * @param array $post_data post键值对数据 5 * @return string 6 */ 7 function send_post( $url , $post_data ) { 8 9 $postdata = http_build_query ( $post_data );
file_get_contents版本:
<span> 1</span> <span>/*</span><span>* </span><span> 2</span> <span> * 发送post请求 </span><span> 3</span> <span> * @param string $url 请求地址 </span><span> 4</span> <span> * @param array $post_data post键值对数据 </span><span> 5</span> <span> * @return string </span><span> 6</span> <span>*/</span> <span> 7</span> <span>function</span> send_post(<span>$url</span>, <span>$post_data</span><span>) { </span><span> 8</span> <span> 9</span> <span>$postdata</span> = <span>http_build_query</span>(<span>$post_data</span><span>); </span><span>10</span> <span>$options</span> = <span>array</span><span>( </span><span>11</span> 'http' =>; <span>array</span><span>( </span><span>12</span> 'method' =>; 'POST', <span>13</span> 'header' =>; 'Content-type:application/x-www-form-urlencoded', <span>14</span> 'content' =>; <span>$postdata</span>, <span>15</span> 'timeout' =>; 15 * 60 <span>//</span><span> 超时时间(单位:s)</span> <span>16</span> <span> ) </span><span>17</span> <span> ); </span><span>18</span> <span>$context</span> = <span>stream_context_create</span>(<span>$options</span><span>); </span><span>19</span> <span>$result</span> = <span>file_get_contents</span>(<span>$url</span>, <span>false</span>, <span>$context</span><span>); </span><span>20</span> <span>21</span> <span>return</span> <span>$result</span><span>; </span><span>22</span> }
使用如下:
<span>1</span> post_data = <span>array</span><span>( </span><span>2</span> 'username' => 'stclair2201', <span>3</span> 'password' => 'handan' <span>4</span> <span>); </span><span>5</span> send_post('http://blog.snsgou.com', <span>$post_data</span>);
实战经验:
当我利用上述代码给另一台服务器发送http请求时,发现,如果服务器处理请求时间过长,本地的PHP会中断请求,即所谓的超时中断,第一个怀疑的是PHP本身执行时间的超过限制,但想想也不应该,因为老早就按照这篇文章设置了“PHP执行时间限制”(【推荐】PHP上传文件大小限制大全 ),仔细琢磨,想想,应该是http请求本身的一个时间限制,于是乎,就想到了怎么给http请求时间限制搞大一点。。。。。。查看PHP手册,果真有个参数 “ timeout ”,默认不知道多大,当把它的值设大一点,问题得已解决,弱弱地做个笔记~~~
Socket版本:
<span> 1</span> <span>/*</span><span>* </span><span> 2</span> <span> * Socket版本 </span><span> 3</span> <span> * 使用方法: </span><span> 4</span> <span> * $post_string = "app=socket&version=beta"; </span><span> 5</span> <span> * request_by_socket('blog.snsgou.com', '/restServer.php', $post_string); </span><span> 6</span> <span>*/</span> <span> 7</span> <span>function</span> request_by_socket(<span>$remote_server</span>,<span>$remote_path</span>,<span>$post_string</span>,<span>$port</span> = 80,<span>$timeout</span> = 30<span>) { </span><span> 8</span> <span>$socket</span> = <span>fsockopen</span>(<span>$remote_server</span>, <span>$port</span>, <span>$errno</span>, <span>$errstr</span>, <span>$timeout</span><span>); </span><span> 9</span> <span>if</span> (!<span>$socket</span>) <span>die</span>("<span>$errstr</span>(<span>$errno</span>)"<span>); </span><span>10</span> <span>fwrite</span>(<span>$socket</span>, "POST <span>$remote_path</span> HTTP/1.0"<span>); </span><span>11</span> <span>fwrite</span>(<span>$socket</span>, "User-Agent: Socket Example"<span>); </span><span>12</span> <span>fwrite</span>(<span>$socket</span>, "HOST: <span>$remote_server</span>"<span>); </span><span>13</span> <span>fwrite</span>(<span>$socket</span>, "Content-type: application/x-www-form-urlencoded"<span>); </span><span>14</span> <span>fwrite</span>(<span>$socket</span>, "Content-length: " . (<span>strlen</span>(<span>$post_string</span>) + 8) . ""<span>); </span><span>15</span> <span>fwrite</span>(<span>$socket</span>, "Accept:*/*"<span>); </span><span>16</span> <span>fwrite</span>(<span>$socket</span>, ""<span>); </span><span>17</span> <span>fwrite</span>(<span>$socket</span>, "mypost=<span>$post_string</span>"<span>); </span><span>18</span> <span>fwrite</span>(<span>$socket</span>, ""<span>); </span><span>19</span> <span>$header</span> = ""<span>; </span><span>20</span> <span>while</span> (<span>$str</span> = <span>trim</span>(<span>fgets</span>(<span>$socket</span>, 4096<span>))) { </span><span>21</span> <span>$header</span> .= <span>$str</span><span>; </span><span>22</span> <span> } </span><span>23</span> <span>24</span> <span>$data</span> = ""<span>; </span><span>25</span> <span>while</span> (!<span>feof</span>(<span>$socket</span><span>)) { </span><span>26</span> <span>$data</span> .= <span>fgets</span>(<span>$socket</span>, 4096<span>); </span><span>27</span> <span> } </span><span>28</span> <span>29</span> <span>return</span> <span>$data</span><span>; </span><span>30</span> }
Curl版本:
<span> 1</span> <span>/*</span><span>* </span><span> 2</span> <span> * Curl版本 </span><span> 3</span> <span> * 使用方法: </span><span> 4</span> <span> * $post_string = "app=request&version=beta"; </span><span> 5</span> <span> * request_by_curl('http://blog.snsgou.com/restServer.php', $post_string); </span><span> 6</span> <span>*/</span> <span> 7</span> <span>function</span> request_by_curl(<span>$remote_server</span>, <span>$post_string</span><span>) { </span><span> 8</span> <span>$ch</span> =<span> curl_init(); </span><span> 9</span> curl_setopt(<span>$ch</span>, CURLOPT_URL, <span>$remote_server</span><span>); </span><span>10</span> curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, 'mypost=' . <span>$post_string</span><span>); </span><span>11</span> curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>true</span><span>); </span><span>12</span> curl_setopt(<span>$ch</span>, CURLOPT_USERAGENT, "snsgou.com's CURL Example beta"<span>); </span><span>13</span> <span>$data</span> = curl_exec(<span>$ch</span><span>); </span><span>14</span> curl_close(<span>$ch</span><span>); </span><span>15</span> <span>16</span> <span>return</span> <span>$data</span><span>; </span><span>17</span> }
Curl版本(2)
<span> 1</span> <span>/*</span><span>* </span><span> 2</span> <span> * 发送HTTP请求 </span><span> 3</span> <span> * </span><span> 4</span> <span> * @param string $url 请求地址 </span><span> 5</span> <span> * @param string $method 请求方式 GET/POST </span><span> 6</span> <span> * @param string $refererUrl 请求来源地址 </span><span> 7</span> <span> * @param array $data 发送数据 </span><span> 8</span> <span> * @param string $contentType </span><span> 9</span> <span> * @param string $timeout </span><span>10</span> <span> * @param string $proxy </span><span>11</span> <span> * @return boolean </span><span>12</span> <span>*/</span> <span>13</span> <span>function</span> send_request(<span>$url</span>, <span>$data</span>, <span>$refererUrl</span> = '', <span>$method</span> = 'GET', <span>$contentType</span> = 'application/json', <span>$timeout</span> = 30, <span>$proxy</span> = <span>false</span><span>) { </span><span>14</span> <span>$ch</span> = <span>null</span><span>; </span><span>15</span> <span>if</span>('POST' === <span>strtoupper</span>(<span>$method</span><span>)) { </span><span>16</span> <span>$ch</span> = curl_init(<span>$url</span><span>); </span><span>17</span> curl_setopt(<span>$ch</span>, CURLOPT_POST, 1<span>); </span><span>18</span> curl_setopt(<span>$ch</span>, CURLOPT_HEADER,0<span> ); </span><span>19</span> curl_setopt(<span>$ch</span>, CURLOPT_FRESH_CONNECT, 1<span>); </span><span>20</span> curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, 1<span>); </span><span>21</span> curl_setopt(<span>$ch</span>, CURLOPT_FORBID_REUSE, 1<span>); </span><span>22</span> curl_setopt(<span>$ch</span>, CURLOPT_TIMEOUT, <span>$timeout</span><span>); </span><span>23</span> <span>if</span> (<span>$refererUrl</span><span>) { </span><span>24</span> curl_setopt(<span>$ch</span>, CURLOPT_REFERER, <span>$refererUrl</span><span>); </span><span>25</span> <span> } </span><span>26</span> <span>if</span>(<span>$contentType</span><span>) { </span><span>27</span> curl_setopt(<span>$ch</span>, CURLOPT_HTTPHEADER, <span>array</span>('Content-Type:'.<span>$contentType</span><span>)); </span><span>28</span> <span> } </span><span>29</span> <span>if</span>(<span>is_string</span>(<span>$data</span><span>)){ </span><span>30</span> curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>$data</span><span>); </span><span>31</span> } <span>else</span><span> { </span><span>32</span> curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, <span>http_build_query</span>(<span>$data</span><span>)); </span><span>33</span> <span> } </span><span>34</span> } <span>else</span> <span>if</span>('GET' === <span>strtoupper</span>(<span>$method</span><span>)) { </span><span>35</span> <span>if</span>(<span>is_string</span>(<span>$data</span><span>)) { </span><span>36</span> <span>$real_url</span> = <span>$url</span>. (<span>strpos</span>(<span>$url</span>, '?') === <span>false</span> ? '?' : ''). <span>$data</span><span>; </span><span>37</span> } <span>else</span><span> { </span><span>38</span> <span>$real_url</span> = <span>$url</span>. (<span>strpos</span>(<span>$url</span>, '?') === <span>false</span> ? '?' : ''). <span>http_build_query</span>(<span>$data</span><span>); </span><span>39</span> <span> } </span><span>40</span> <span>41</span> <span>$ch</span> = curl_init(<span>$real_url</span><span>); </span><span>42</span> curl_setopt(<span>$ch</span>, CURLOPT_HEADER, 0<span>); </span><span>43</span> curl_setopt(<span>$ch</span>, CURLOPT_HTTPHEADER, <span>array</span>('Content-Type:'.<span>$contentType</span><span>)); </span><span>44</span> curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, 1<span>); </span><span>45</span> curl_setopt(<span>$ch</span>, CURLOPT_TIMEOUT, <span>$timeout</span><span>); </span><span>46</span> <span>if</span> (<span>$refererUrl</span><span>) { </span><span>47</span> curl_setopt(<span>$ch</span>, CURLOPT_REFERER, <span>$refererUrl</span><span>); </span><span>48</span> <span> } </span><span>49</span> } <span>else</span><span> { </span><span>50</span> <span>$args</span> = <span>func_get_args</span><span>(); </span><span>51</span> <span>return</span> <span>false</span><span>; </span><span>52</span> <span> } </span><span>53</span> <span>54</span> <span>if</span>(<span>$proxy</span><span>) { </span><span>55</span> curl_setopt(<span>$ch</span>, CURLOPT_PROXY, <span>$proxy</span><span>); </span><span>56</span> <span> } </span><span>57</span> <span>$ret</span> = curl_exec(<span>$ch</span><span>); </span><span>58</span> <span>$info</span> = curl_getinfo(<span>$ch</span><span>); </span><span>59</span> <span>$contents</span> = <span>array</span><span>( </span><span>60</span> 'httpInfo' => <span>array</span><span>( </span><span>61</span> 'send' => <span>$data</span>, <span>62</span> 'url' => <span>$url</span>, <span>63</span> 'ret' => <span>$ret</span>, <span>64</span> 'http' => <span>$info</span>, <span>65</span> <span> ) </span><span>66</span> <span> ); </span><span>67</span> <span>68</span> curl_close(<span>$ch</span><span>); </span><span>69</span> <span>return</span> <span>$ret</span><span>; </span><span>70</span> }
调用 WCF接口 的一个例子:$json = restRequest($r_url,'POST', json_encode($data));

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

Win11怎么退版本?很多朋友在升级了win11后认为其不好用,那么大家可以选择退回之前的版本哦。那么你知道该如何操作嘛?很多用户都不知道,其实方法并不难,下面小编给大家带来退回Win10的方法分享,一起来学习吧。退回Win10的方法分享1、进入“设置”。2、选择“WindowsUpdate”,然后点击“恢复”。3、在“恢复选项”中选择“以前版本的Windows”,点击“返回”。4、选择原因,然后点击“下一步”。5、你将看到“检查更新”的通知,选择“不,谢谢”。6、阅读需要了解的内容,然后点击“

神舟炫龙m7独显直连怎么开要开启神舟炫龙m7的独立显卡直连功能,您可以按照以下步骤进行操作:1.首先,确保您已经安装好了独立显卡的驱动程序。您可以前往神舟官方网站或独立显卡厂商官网下载并安装适合您显卡型号的最新驱动程序。2.在电脑桌面上,右键单击空白处,在弹出的菜单中选择“NVIDIA控制面板”(如果是AMD显卡,则选择“AMDRadeon设置”)。3.在控制面板中,找到“3D设置”或类似命名的选项,点击进入。4.在“3D设置”中,您需要找到“全局设置”或类似命名的选项。在这里,您可以指定使用独

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

耐克作为全球知名的运动品牌,其鞋子备受瞩目。然而,市场上也存在大量的假冒伪劣商品,其中就包括假冒的耐克鞋盒。辨别真假鞋盒对于保护消费者的权益至关重要。本文将为您提供一些简单而有效的方法,以帮助您辨别真假鞋盒。一:外包装标题通过观察耐克鞋盒的外包装,可以发现许多细微的差异。真正的耐克鞋盒通常具有高品质的纸质材料,手感光滑,且没有明显的刺激性气味。正品鞋盒上的字体和标志通常清晰、精细,并且没有模糊或颜色不协调的情况。二:LOGO烫金标题耐克鞋盒上的LOGO通常是烫金工艺,真品鞋盒上的烫金部分会呈现出

拯救者y7000p玩cf分辨率多少拯救者Y7000P玩CF的分辨率为1920*1080。因为该电脑配备了GTX1650显卡和i5-9300H处理器,性能较为优秀,足以满足CF这类游戏的需求。同时,1920*1080是目前主流电竞显示器的分辨率,画质清晰度足够。另外,如果有更高要求的玩家,可以适当降低游戏画质的设置,以获得更加流畅的游戏体验。为了享受更清晰的视觉体验,你可以将拯救者y7000p的分辨率调整为2560*1400。这样,你将能够享受到更高质量的图像显示。拯救者Y7000P2022款搭载


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Mac version
God-level code editing software (SublimeText3)

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
