2010-08-07 2 views
1

Итак, в соответствии с моим последним вопросом, я работаю над очищением корма друзей от Twitter. Я последовал за учебником, чтобы получить этот скрипт написанным, довольно много шаг за шагом, поэтому я не совсем уверен, что с ним не так, и я не вижу сообщений об ошибках. Я никогда не использовал cURL перед сохранением из оболочки, и я чрезвычайно новичок в PHP, поэтому, пожалуйста, несите меня.Grabbing Twitter Friends Feed Использование PHP и cURL

<html> 
<head> 
<title>Twitcap</title> 
</head> 
<body> 
<?php 
    function twitcap() 
    { 
    // Set your username and password 
    $user = 'osoleve'; 
    $pass = '****'; 

    // Set site in handler for cURL to download 
    $ch = curl_init("https://twitter.com/statuses/friends_timeline.xml"); 

    // Set cURL's option 
    curl_setopt($ch,CURLOPT_HEADER,1); // We want to see the header 
    curl_setopt($ch,CURLOPT_TIMEOUT,30); // Set timeout to 30s 
    curl_setopt($ch,CURLOPT_USERPWD,$user.':'.$pass); // Set uname/pass 
    curl_setopt($ch,CURLOPT_RETURNTRANSER,1); // Do not send to screen 

    // For debugging purposes, comment when finished 
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0); 
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0); 

    // Execute the cURL command 
    $result = curl_exec($ch); 

    // Remove the header 
    // We only want everything after <? 
    $data = strstr($result, '<?'); 

    // Return the data 
    $xml = new SimpleXMLElement($data); 
    return $xml; 
    } 

    $xml = twitcap(); 
    echo $xml->status[0]->text; 
?> 
</body> 
</html> 

ответ

1

Неужели вам не нужно все после "?>"?

$data = strstr($result,'?>'); 

Кроме того, вы используете бесплатный хостинг? У меня когда-то была проблема, когда мой хостинг-провайдер блокировал доступ к Твиттеру из-за того, что люди спам его.

0

Обратите внимание, что если вы используете strstr, строка returend на самом деле будет содержать игольную строку. поэтому вам нужно полоса из первых двух символов из строки

Я предпочел бы рекомендовать комбинацию функций substr и strpos!

anways, я думаю, simplexml должен уметь обрабатывать этот заголовок, что означает, что этот шаг не нужен!

Кроме того, если я открою URL-адрес, я не вижу подобного заголовка! и если strstr оленьей кожи найти строку возвращает ложь, так что вы не имеете какие-либо данных в текущем сценарии

вместо $data = strstr($result, '<?'); попробовать это:

if(strpos('?>',$data) !== false) { 
$data = strstr($result, '?>'); 
} else { 
$data = $result; 
}