Bir kullanıcı POST aracılığıyla gönderdiği bir dizenin parçası bulma

2 Cevap php

Benim kullanıcıların Rapidshare, Megaupload, full ve filefactory gibi popüler dosya bilgisayarlardan gelen bağlantıları gönderebilirsiniz. Ben nedense onlar gelen link gönderdi barındırıcısına öğrenmek ve uygun bunun için doğru sınıf kullanmanız gerekir.

Benim web sayfasındaki bir formda bir Rapidshare link gönderdi Örneğin, ben rapidshare.com, sonra kullanıcı gönderdi biliyorum metni bulmak kadar izin her dosya, ana bilgisayar aracılığıyla nasılsa döngüsü gerekir Rapidshare linki.

Belki bir PHP örneği:

switch($_POST['link'])
{
    case strstr($_POST['link'], 'rapidshare.com'):
        // the link is a Rapidshare one
        break;

    case strstr($_POST['link'], 'megaupload.com'):
        // the link is a Megaupload one
        break;

    case strstr($_POST['link'], 'hotfile.com'):
        // the link is a Hotfile one
        break;

    case strstr($_POST['link'], 'filefactory.com'):
        // the link is a Filefactory one
        break;
}

Ancak, bu doğru değil, bir gerçeği biliyorum ve ben bunu yardımcı olabilir eğer ben oldukça IF deyimi büyük kullanmayın istiyorum.

Herkes bu soruna herhangi bir çözüm var mı?

Eğer ben deneyebilirsiniz daha fazla açıklamak için bana ihtiyaç varsa bu biraz zor yani, İngilizce benim anadilim değil.

Tüm teşekkürler.

2 Cevap

Nevermind çocuklar, bu kullanıldı:

$sentLink = trim($_POST['link']);

$host = parse_url($sentLink, PHP_URL_HOST);

switch($host)
{
    case 'rapidshare.com':
        echo "RS";
        break;
    case 'megaupload.com':
        echo "MU";
        break;
    case 'hotfile.com':
        echo "HF";
        break;
    case 'filefactory.com':
        echo "FF";
        break;
    default:
        echo "WTF! D:";
}

I parse_url :) duydum ilk kez

Göre http://stackoverflow.com/questions/1813599/php-regex-hostname-extraction Eğer www kontrol emin olmak istiyorum. parse_url olarak inci EURL kısmı bazen de dönebilirsiniz.

$sentLink = trim($_POST['link']);

$host = array_shift( explode( '.', str_replace('www.', '', parse_url( $sentLink , PHP_URL_HOST )) ) );

switch($host)
{
    case 'rapidshare.com':
        echo "RS";
        break;
    case 'megaupload.com':
        echo "MU";
        break;
    case 'hotfile.com':
        echo "HF";
        break;
    case 'filefactory.com':
        echo "FF";
        break;
    default:
        echo "WTF! D:";
}