2013-07-04 5 views
-1

Мне нужно отобразить изображение с URL-адреса, используя CURL.but, после запуска этого кода я мог получать текстовые данные. не отображается изображение? за $ один содержит каптчи образ и я хочу, чтобы пользователь, чтобы заполнить капчу, видя image.plz помощь ...extract image from curl result

curl_setopt($ch, CURLOPT_USERAGENT,$usergaent); 
curl_setopt($ch, CURLOPT_URL, 'http://sitproject.com/verification.asp?source=login'); 
curl_setopt ($ch, CURLOPT_HTTPHEADER, $httpheader); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($ch,CURLOPT_REFERER,"http://site2sms.com/login.asp"); 
$one = curl_exec($ch); 
echo $one; 


while debugging $one contains this only no binary image data: 

<body> 
<div class="success">Thanks for using Sitproject.Com! You are logged into your Account Successfully to Proceed Further Please Enter Below Displayed 3 Digits Security Code in the Input Box!</div> 
<table width="1079" height="54" border="0"> 
<tr> 
<td> 
<img src="security/captcha.asp" /> 
<br /> 
Please Type the 3 Digits Displayed above in the Image and Click on Proceed Further Button to use the Free Services? 
<br /> 
<form name="frmVerify" action="auth.asp" method="post"> 
<input type="hidden" name="txtSource" value="captcha" /> 
<input type="text" name="txtCaptcha" maxlength="3" /> 
<input type="submit" value="Proceed Further" /> 
</form> 
</td> 
</tr> 
<tr> 
<td>Note: If you are having any problem with Security Code you can mail us at [email protected]!</td> 
</tr> 
</table> 
</body> 
+0

Вы даже _read_ сообщение в ответе HTML ...? Заголовок – CBroe

ответ

1

Вам нужен второй запрос, чтобы запросить проверочное изображение, которое с глядя на ответ, находится в:

security/captcha.asp 

Я бы сказал, учитывая, что есть капчу они, вероятно, не хотят боты, такие как это пытаются потреблять услугу, так что вы должны проверить, не являются нарушая какие-либо условия.

0

Ваше положение

<?php 
$url = "https://api.github.com/users/softvar"; //enter url to extract from 
$send_curl = curl_init($url); 
curl_setopt($send_curl, CURLOPT_URL, $url); 

curl_setopt($send_curl, CURLOPT_HEADER, false); 
curl_setopt($send_curl, CURLOPT_CONNECTTIMEOUT, 2); 
curl_setopt($send_curl, CURLOPT_USERAGENT,'softvar'); // your useragent name 
curl_setopt($send_curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($send_curl, CURLOPT_HTTPHEADER,array('Accept: application/json', "Content-type: application/json")); 
curl_setopt($send_curl, CURLOPT_FAILONERROR, FALSE); 
curl_setopt($send_curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($send_curl, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($send_curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
$json_response = curl_exec($send_curl); 
echo $json_response; // response in JSON 
$response = json_decode($json_response, true); 
echo '</br></br>'; 

$img = $response['avatar_url']; // instead of 'avatar_url' enter the element name which contains the image url 

//while debugging $one contains this only no binary image data: 
?> 
<body> 
<div class="success">Thanks for using Sitproject.Com! You are logged into your Account Successfully to Proceed Further Please Enter Below Displayed 3 Digits Security Code in the Input Box!</div> 
<table width="1079" height="54" border="0"> 
<tr> 
<td> 
<img src="<?php echo $img;?>" /> 
<!-- Your captcha will display here--> 
<br /> 
Please Type the 3 Digits Displayed above in the Image and Click on Proceed Further Button to use the Free Services? 
<br /> 
<form name="frmVerify" action="auth.asp" method="post"> 
<input type="hidden" name="txtSource" value="captcha" /> 
<input type="text" name="txtCaptcha" maxlength="3" /> 
<input type="submit" value="Proceed Further" /> 
</form> 
</td> 
</tr> 
<tr> 
<td>Note: If you are having any problem with Security Code you can mail us at [email protected]!</td> 
</tr> 
</table> 
</body> 

Это полностью рабочий пример. Попробуй.

Так вы получаете что-то. В ответ вы получите данные в соответствии с вашим CURLOPT_HTTPHEADER. Здесь я использовал JSON.

Затем извлеките изображение, которое вы просто хотите, и поместите туда, где хотите.

Если это решает вашу проблему, нажмите, чтобы принять это.

+0

(«Content-Type: image/bmp»); header («Content-Disposition: inline; filename = captcha.bmp»); echo $ one; –

+0

Мне нужно передать этот код, чтобы отделить php, иначе он не будет работать. Потому что заголовок страницы изменяется на изображение/bmp. –

+0

Я тебя не понял. Пожалуйста, объясните свои проблемы четко. – softvar