7
votes

Comment obtenir l'URL de base d'un site Web externe

J'utilise Curl pour renvoyer des données de sites externes. Comment puis-je retourner l'URL de base d'un site avec PHP?

Par exemple, j'ai cette URL: http://www.bestbuy.com/site/insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.P?id=1218317000232&skuid=2009148

Je veux juste http://www.bestbuy.com

Merci!


0 commentaires

3 Réponses :


2
votes

0 commentaires

0
votes

regex :)

Utilisez celui-ci (non sûr si cela fonctionnera sur PHP, mais vous pouvez le modifier légèrement si nécessaire)

/ ^ (((http: \ / \ / | https: \ / \ /)? (?:. +? +?)) (?: \ S * $ | \ / /.*$) /

Donc, cela correspondra éventuellement correspondre http: // ou https: // (? signe après \ / \ /) ) puis une correspondance paresseuse jusqu'à la fin de la ligne ou / si existe

et votre URL souhaitée est dans le premier groupe de capture

éventuellement vous pouvez omettre?: partout dans la regex et vous pouvez obtenir

  • Premier: URL complète
  • Deuxième: paramiques
  • Troisième: Protocole
  • quatrième: domaine

0 commentaires

16
votes


$url = "http://www.bestbuy.com/site/Insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.p?id=1218317000232&skuId=2009148";
echo "";
print_r(parse_url($url));

//Would give you
Array
(
    [scheme] => http
    [host] => www.bestbuy.com
    [path] => /site/Insignia%26%23153%3B+-+55%22+Class+/+1080p+/+120Hz+/+LCD+HDTV/2009148.p
    [query] => id=1218317000232&skuId=2009148
)


0 commentaires