Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa varijablom

[es] :: PHP :: PHP za početnike :: Problem sa varijablom

[ Pregleda: 1783 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Problem sa varijablom03.06.2010. u 21:24 - pre 168 meseci
Pozdrav svima.
Krenuo sam da radim neku skriptu sa twitter api-jem, i desava mi se nesto cudno, naime:
Code:
    $login = $user.':'.$pass;
    $ch = curl_init();
    $address = "http://api.twitter.com/1/friends/ids/".$user.".xml";
    
    curl_setopt($ch, CURLOPT_URL, $address);
    curl_setopt($ch, CURLOPT_USERPWD, $login);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $str = curl_exec($ch);
    curl_close($ch);
    
    preg_match_all('#<id>([^<]+)</id>#', $str, $matches);                           // Strip <id></id> tags from .xml
    $i=0;
    foreach($matches[0] as $k => $match) {                                          // Count my followers
        echo $i.': '.$matches[0][$i].'<br />';
        $i++;
    }
    echo "<p>You have ".$i." followers!</p><br />";                                 // Show the amount of followers
    $random_follower = $matches[0][rand(0,$i-1)];                                   // Pick a follower... any follower
    echo '<p>Random Follower\'s ID: '.$random_follower.'</p><br />'; 
    
    $ch = curl_init();
    $tapi = 'http://api.twitter.com/1/friends/ids.xml?user_id='.$random_follower;   //twitter api
    
    curl_setopt($ch, CURLOPT_URL, $tapi);
    curl_setopt($ch, CURLOPT_USERPWD, $login);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $str = curl_exec($ch);
    curl_close($ch);
    print_r($str);


rezultat daje tipa:
Code:
You have 50 followers!


Random Follower's ID: 12345678


/1/friends/ids.xml?user_id=<id>12345678</id> This method requires authentication. 


Ne mogu da 'provalim' zbog cega u echo izbacuje normalno, ali kada se prebacuje kroz variablu $tapi izbacuje klasican deo .xml-a
Mala pomoc? Neka glupost je u pitanju, koju ne vidim ..
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Problem sa varijablom03.06.2010. u 21:49 - pre 168 meseci
Umesto $random_follower = $matches[0][rand(0,$i-1)], stavi $random_follower = $matches[1][rand(0,$i-1)].
 
Odgovor na temu

s1cK
Puno Ime
Internet

Član broj: 43061
Poruke: 66



+1 Profil

icon Re: Problem sa varijablom03.06.2010. u 22:13 - pre 168 meseci
Hvala na odgovoru, i to zaista radi, ali samo mi nije jasno zasto ovo moje, u jednom delu lepo ispise, dok za url nece .. :\
<kow> "There are 10 types of people in the world... those who understand binary and
those who don't."
<SpaceRain> That's only 2 types of people, kow.
<SpaceRain> STUPID
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: Problem sa varijablom04.06.2010. u 10:23 - pre 168 meseci
Ako misliš na ovaj deo: echo $i.': '.$matches[0][$i].'<br />';, baci pogled u source tvoje stranice, i videćeš upravo <id>12345678</id>. HTML na to <id> gleda kao tag, i sve što je između znakova "<" i ">", biće ispisano kao tag, tačnije, biće "nevidljivo" u browser-u. Naravno, "id" tag ne postoji u HTML-u, pa nećeš videti nikakav vizuelni efekat. Probaj npr. da tu tvoju liniju ispišeš ovako: echo $i.': ' . htmlentities($matches[0][$i]) .'<br />';. Kao što vidiš, da bi zaista ispisao znakove "<" i ">" u browser-u, moraš da ih ispišeš na poseban način, odnosno, koristeći odgovarajuće entitete, u tvom slučaju &lt; i &gt;.

Sve ovo što sam napisao su neki osnovni principi HTML-a (ja sam mislio da ih poznaješ ), i to nije vezano za tvoj problem, odnosno, tu malu grešku koju si napravio. Problem je bio samo u tome što si nakon match-ovanja, uzimao ceo rezultat tog patterna, umesto onog dela koji ti je bio od interesa, i kojeg si uokvirio zagradama. Sve te preg_* funkcije za match-ovanje rade na isti način, uvek ćeš u rezultujućem nizu dobiti ceo pogodak, a naravno i one delove (subpattern-e) koje si uokvirio zagradama. Redosled zavisi od četvrtog parametra kojeg ćeš proslediti npr. preg_match_all funkciji.
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Problem sa varijablom

[ Pregleda: 1783 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.