2010-08-07 5 views
1

Donc, en accord avec ma dernière question, je travaille sur le fil de discussion des amis de Twitter. J'ai suivi un tutoriel pour écrire ce script, étape par étape, donc je ne suis pas vraiment sûr de ce qui ne va pas, et je ne vois pas de messages d'erreur. Je n'ai jamais vraiment utilisé cURL avant de sauvegarder depuis le shell, et je suis extrêmement novice en PHP alors s'il vous plait, gardez-moi.Saisir le fil Twitter des amis en utilisant PHP et 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> 

Répondre

1

N'auriez-vous pas vraiment besoin de tout après "?>"?

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

Également, utilisez-vous un hébergeur gratuit? Une fois, j'ai eu un problème où mon fournisseur d'hébergement bloquait l'accès à Twitter en raison du spamming.

0

notez que si vous utilisez strstr, la chaîne returend inclura réellement la chaîne d'aiguilles. donc vous devez dépouiller les 2 premiers caractères de la chaîne

Je recommanderais plutôt une combinaison de la fonction substr et strpos!

de toute façon, je pense que simplexml devrait être capable de gérer cette entête ce qui signifie que cette étape n'est pas nécessaire! En outre si j'ouvre l'URL je ne vois pas l'en-tête semblable! et si strstr ne marche pas trouver la chaîne elle retourne false, de sorte que vous n'avez pas de données dans votre script en cours

au lieu de $data = strstr($result, '<?'); essayer ceci:

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