Bit.ly link in string omzetten in variabele

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans Handgraaf

Hans Handgraaf

17/01/2011 10:00:05
Quote Anchor link
Ik probeer een script te maken dat zoekt naar het patroon van een bit.ly link (bijvoorbeeld http://bit.ly/ab12de)

$patternbitly = '#http://bit\.ly/[a-zA-Z0-9]{6}#';

Als dit patroon is gevonden wil ik dat omzetten naar een variabele zodat ik deze via de API van bit.ly kan omzetten naar de originele URL.

Dat aanroepen en omzetten lukt wel met dit script:

$bitly = new Bitly('<your_login>','<your_api_key>');
echo $bitly->expand('http://bit.ly/b6R4Uf'); // shortcut to print the long url

Hoe kan ik de http://bit.ly/b6R4Uf vervangen door een variabele die gevuld is met een resultaat dat voldoet aan het pratroon?
 
PHP hulp

PHP hulp

25/11/2024 05:20:57
 
Jens V

Jens V

17/01/2011 10:18:10
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$url
= $bitly->expand('http://bit.ly/b6R4Uf');
?>

?
 

17/01/2011 10:26:43
Quote Anchor link
Jens V op 17/01/2011 10:18:10:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$url
= $bitly->expand('http://bit.ly/b6R4Uf');
?>

?


Volgens mij zoekt hij preg_replace, zou een beetje suf zijn als hij zelf niet weet hoe hij die methode moet gebruiken waar hij zelf naar verwijst.
Edit: Of preg_replace_callback.
Gewijzigd op 17/01/2011 10:29:09 door
 
Hans Handgraaf

Hans Handgraaf

17/01/2011 10:30:14
Quote Anchor link
Ik ken preg_replace (een beetje) maar heb daarmee geen methode gevonden om dit voor elkaar te krijgen.
 

17/01/2011 10:33:01
Quote Anchor link
Ja, dat is het punt toch, je wilt van die bit.ly string de url string hebben?
 
Hans Handgraaf

Hans Handgraaf

17/01/2011 10:36:40
Quote Anchor link
Ja dat is inderdaad de bedoeling.
 
Pim -

Pim -

17/01/2011 12:44:49
Quote Anchor link
$key = substr($url, 14);

Moch de prefix steeds hetzelfde zijn.
 
Hans Handgraaf

Hans Handgraaf

17/01/2011 13:00:08
Quote Anchor link
Bedankt Pim, maar hoe vind ik dan de $url in de string en hoe verder met $key? Ik heb nog niet door waar je heen wilt.
 
Pim -

Pim -

17/01/2011 13:00:39
Quote Anchor link
Ik heb ook geen idee wat jij eigenlijk wil ;)
 
Nicoow Unknown

Nicoow Unknown

17/01/2011 13:14:52
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

if (preg_match($patternbitly, $url) > 0) {
    //Is geldige bitly
} else {
    //ongeldig
}

?>


Bedoel je zoiets?

Ik snap je probleem namelijk niet helemaal, je hebt de reguliere expressie om het te checken, en die werkt prima, dus ik neem aan dat je iets heel anders bedoelt, en anders mag je de volgende keer eerst even gaan googlen ;)
 
Hans Handgraaf

Hans Handgraaf

17/01/2011 13:37:02
Quote Anchor link
Veel onduidelijkheid zie ik. Dit is wat is wil:

1) Zoeken in een string naar iets wat voldoet aan het patroon van een bitly URL;
2) Als die gevonden wordt de waarde via de Bitly API laten uitpakken naar de volledige URL.

Voorbeeld:

String= "blablabblabalblabla http://bitly/1a2b3c blablablablablabla"
Dan http://bitly/1a2b3c doorgeven aan bitly API die vervolgens bijvoorbeeld http://www.google.com teruggeeft als volledige URL.
 
Nicoow Unknown

Nicoow Unknown

17/01/2011 13:56:20
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

$pattern
= "#http://bit\.ly/[a-zA-Z0-9]{6}#";
$string = "Blalb http://bit.ly/b6R4Uf bla http://bit.ly/b9u4Uf";

if (preg_match_all($pattern, $string, $matches)) {
    $bitly = new Bitly('<your_login>','<your_api_key>');
    foreach ($matches[0] as $match) {
        echo $bitly->expand($match) .'<br />';
    }
}
else {
    echo 'geen bit.ly url gevonden';
}


?>


Dit is dus wat je wilt ;)

Volgende keer graag even duidelijk (eventueel met bullets) uitleggen wat je precies wilt, wat je al hebt gedaan, en waar je op vast loopt.
Want we kunnen je nu eigenlijk niet helpen, behalve met jou de code geven.

Veel plezier ermee!
 
Hans Handgraaf

Hans Handgraaf

17/01/2011 21:17:57
Quote Anchor link
Werkt als een trein. Bedankt. Ik was zo lost in de preg_replace dat ik geen bruikbare code kon geven. preg_match_all had ik nooit ontdekt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.