Удалить части строки с помощью PHP - PullRequest
1 голос
/ 24 февраля 2012

У меня есть поле ввода, которое говорит uers, чтобы ввести ссылку с imgur.com Я хочу, чтобы скрипт проверил ссылку на указанный сайт, но я не знаю, как это сделать?

Ссылки следующие: http://i.imgur.com/He9hD.jpg Обратите внимание, что после / текст может отличаться, например не быть JPG, но основной домен всегда http://i.imgur.com/.

Любая помощь приветствуется. Спасибо, Джош. (Новичок)

Ответы [ 6 ]

3 голосов
/ 24 февраля 2012

Попробуйте parse_url ()

try {
    if (!preg_match('/^(https?|ftp)://', $_POST['url']) AND !substr_count($_POST['url'], '://')) {
        // Handle URLs that do not have a scheme
        $url = sprintf("%s://%s", 'http', $_POST['url']);
    } else {
        $url = $_POST['url'];
    }

    $input = parse_url($url);

    if (!$input OR !isset($input['host'])) {
        // Either the parsing has failed, or the URL was not absolute
        throw new Exception("Invalid URL");
    } elseif ($input['host'] != 'i.imgur.com') {
        // The host does not match
        throw new Exception("Invalid domain");
    }

    // Prepend URL with scheme, e.g. http://domain.tld
    $host = sprintf("%s://%s", $input['scheme'], $input['host']);
} catch (Exception $e) {
    // Handle error
}
2 голосов
/ 24 февраля 2012

Проверьте это, используя stripos

if(stripos(trim($url), "http://i.imgur.com")===0){
 // the link is from imgur.com
}
2 голосов
/ 24 февраля 2012
substr($input, 0, strlen('http://i.imgur.com/')) === 'http://i.imgur.com/'
1 голос
/ 24 февраля 2012

Попробуйте:

<?php
if(preg_match('#^http\:\/\/i\.imgur.com\/#', $_POST['url']))
    echo 'Valid img!';
else
    echo 'Img not valid...';
?>

Где $ _POST ['url'] - ввод пользователя.

Я не проверял этот код.

1 голос
/ 24 февраля 2012

Несколько способов сделать это .. Вот один из них:

if ('http://i.imgur.com/' == substr($link, 0, 19)) {
    ...
}
1 голос
/ 24 февраля 2012
$url_input = $_POST['input_box_name'];
if ( strpos($url_input, 'http://i.imgur.com/') !== 0 )

...

...