2010-10-15 5 views
1

Я создал скрипт в php, который используется для захвата свойств для пользователей.Потенциальная проблема с ssl в php-скрипте

Для этого требуется вызвать api для получения этих свойств.

URL, я установил это:

$url=("http://user:[email protected]/@api/users/=$user_id/properties"); 

Затем используйте file_get_contents для XML.

Когда я просто набираю этот URL-адрес в браузере, он отлично работает. Он немедленно выводит эти свойства для данного пользователя. Однако похоже, что он автоматически переключает его на https. Есть ли что-то, что нужно сделать, чтобы это могло работать при использовании php?

Код:

<?php 

$user=$_GET['userid']; 
$user_id=str_replace(array('@', '#'), array('%40', '%23'), $user); 

print "User-id: $user"; 
print "<br /><br />"; 

$url=("http://user:[email protected]/@api/users/=$user_id/properties"); 
echo $url; 
$xmlString=file_get_contents($url); 

$delete = "http://user:[email protected]/@api/users/=$user_id/properties/"; 
$xml = new SimpleXMLElement($xmlString); 

function curl_fetch($url,$username,$password,$method='DELETE') 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch,CURLOPT_USERPWD,"$username:$password"); 
    return curl_exec($ch); 
} 

print "The following properties have been removed: "; 
print "<br />"; 

if(!count($xml->property)) die('No properties exist for this user'); 

foreach($xml->property as $property) { 
    $name = $property['name']; 
    $name2=str_replace(array('@', '#'), array('%40', '%23'), $name); 
    print $name2; 
    print "<br />"; 
    curl_fetch($delete . $name2,'user','pass'); 
} 

ответ

0

Вы можете использовать curl и curl_setopt, который позволяет установить CURLOPT_FOLLOWLOCATION, чтобы быть правдой, то это должно следовать всем перенаправлениям и возвращают выходные данные со страницы концовки.

+0

Спасибо, что ответили. Поэтому я уже использую curl скрипт. Я отредактировал оригинальный пост, чтобы вы могли видеть код. Вы говорите, что я могу использовать setopt, и это должно сработать? – Aaron

+0

Должно быть, попробуем и посмотрим, я уверен, что это гораздо более быстрый способ выяснить, работает ли он или нет. –

+0

Извините, я думаю, причина, по которой я спросил, это потому, что я не видел ничего другого. Я добавил его в начало функции curl_fetch. Возможно ли, что его что-то с xmlString = file_get_contents ($ url), поскольку это выполняется до скручивания? – Aaron

Смежные вопросы