php post请求和jquery中post请求有什么不同吗?
自己写了一个php的socket http请求,
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public function sendpost($postType='POST') { $url = $this->postURL; $data = $this->postData == '' ? array() : $this->postData; //先解析url $url = parse_url($url); $url_port = !isset($url['port']) ? (($url['scheme'] == 'http') ? 80 : 443) : $url['port']; if (!$url) { $this->errMessage = "couldn't parse url"; return false; } //将参数拼成URL key1=value1&key2=value2 的形式 $encoded = ""; while (list($k, $v) = each($data)) { $encoded .= ($encoded ? '&' : ''); $encoded .= rawurlencode($k)."=".rawurlencode($v); } //echo $encoded;exit; $len = strlen($encoded); //拼上http头 $out = "{$postType} ".$url['path'].(isset($url['query']) ? ('?'.$url['query']) : '')." HTTP/1.1\r\n"; $out .= "Host:".$url['host']."\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "Content-Length: $len\r\n"; $out .= "\r\n"; $out .= $encoded."\r\n"; //打开一个sock $fp = @fsockopen($url['host'], $url_port); $line = ""; if (!$fp) { $this->errMessage = "$errstr($errno)\n"; return false; } else { fwrite($fp,$out); while (!feof($fp)) { $line .= fgets($fp, 2048); } } //去掉头文件 if ($line) { $body = stristr($line, "\r\n\r\n"); $body =substr($body, 4, strlen($body)); $line = $body; } fclose($fp); return $line; }
同时,用jquery的ajax请求测试。
- JScript code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->$.ajax({ type : "POST", cache : false, url : _url, data : _data, dataType : 'json', success : function(data) { } });
发现php的请求总是返回错误的信息,而ajax请求则返回正确的,应该都是http post请求数据返回数据,没什么区别吧。
服务器端还可以检测出是ajax请求还是php请求?
------解决方案--------------------
- PHP code
[User:root Time:03:17:09 Path:/home/apache/web]$ cat test.php <?php // http only, no error check.function post_request($url, $data) { $post_data = http_build_query($data); $request = "POST /main.php HTTP/1.1\r\n" . "Host: 192.168.1.10\r\n" . "Content-Type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($post_data) . "\r\n\r\n" . $post_data; echo $request . PHP_EOL; $sockfd = fsockopen("192.168.1.10", 80); fwrite($sockfd, $request); $response = ""; while (($ret= fgets($sockfd)) !== false) { $response .= $ret; } return $response;}$response = post_request("http://192.168.1.10/main.php", array('a' => "baidu", 'b' => "client backend"));echo $response;?>[User:root Time:03:17:12 Path:/home/apache/web]$ cat main.php <?phpecho $_POST['a'] . PHP_EOL;echo $_POST['b'] . PHP_EOL;?><br><font color="#e78608">------解决方案--------------------</font><br>另外,https你的代码是无力的,必须用php支持的context参数利用stream_context_create配合file_get_contents之类的使用或者fopen之类的使用,或者直接用curl。<div class="clear"> </div>

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi

PHPisusedforsendingemailsduetoitsbuilt-inmail()functionandsupportivelibrarieslikePHPMailerandSwiftMailer.1)Usethemail()functionforbasicemails,butithaslimitations.2)EmployPHPMailerforadvancedfeatureslikeHTMLemailsandattachments.3)Improvedeliverability

PHP performance bottlenecks can be solved through the following steps: 1) Use Xdebug or Blackfire for performance analysis to find out the problem; 2) Optimize database queries and use caches, such as APCu; 3) Use efficient functions such as array_filter to optimize array operations; 4) Configure OPcache for bytecode cache; 5) Optimize the front-end, such as reducing HTTP requests and optimizing pictures; 6) Continuously monitor and optimize performance. Through these methods, the performance of PHP applications can be significantly improved.

DependencyInjection(DI)inPHPisadesignpatternthatmanagesandreducesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itallowspassingdependencieslikedatabaseconnectionstoclassesasparameters,facilitatingeasiertestingandscalability.

CachingimprovesPHPperformancebystoringresultsofcomputationsorqueriesforquickretrieval,reducingserverloadandenhancingresponsetimes.Effectivestrategiesinclude:1)Opcodecaching,whichstorescompiledPHPscriptsinmemorytoskipcompilation;2)DatacachingusingMemc


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

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver Mac version
Visual web development tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
