За последние 24 часа нас посетили 16004 программиста и 1540 роботов. Сейчас ищут 912 программистов ...

Проверка вхождения элементов массива в строку

Тема в разделе "PHP для новичков", создана пользователем diselvin2016, 18 янв 2017.

  1. diselvin2016

    diselvin2016 Новичок

    С нами с:
    30 дек 2016
    Сообщения:
    8
    Симпатии:
    0
    Доброго времени суток друзья. Помогите дописать проверку элементов массива в строке. Строка содержит ссылку. Мне надо проверить обычная эта ссылка или ссылка на загрузку файла, в конце которой идёт расширение скачиваемого файла. Думаю проверки хвоста ссылки на элементы массива будет достаточно! Ссылка может быть совершенно любой. В массиве содержатся расширения файлов. PHP код ниже:
    PHP:
    1. $url_link = 'http://torrentinofiles.com/asddfggjm/games.torrent';
    2. $download = array(".exe",".rar",".zip",".torrent","avi");
    Что-то типа:
    PHP:
    1. if(strpos($url_link, $download) !== FALSE)
    только с проверкой присутствия расширения файлов в конце ссылки!
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Используй регулярные выражения:
    PHP:
    1. <?php
    2. $exp = '/\.(exe|jpg|avi)$/i';
    3. $link = 'http://site.com/image.jpg';
    4. if (preg_match($exp, $link)) {
    5.     echo 'Bingo!';
    6. }
     
    diselvin2016 нравится это.
  3. diselvin2016

    diselvin2016 Новичок

    С нами с:
    30 дек 2016
    Сообщения:
    8
    Симпатии:
    0
    Мне главное, чтобы производительность не падала. Регулярки специально не рассматривал!
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @diselvin2016 последние 3 символа можно взять с помощью substr
    Код (Text):
    1. $ext = substr($link, -3);
    и все нужные расширения вписать прямо в условие if через ||, так будет быстрее всего.
     
    diselvin2016 нравится это.
  5. diselvin2016

    diselvin2016 Новичок

    С нами с:
    30 дек 2016
    Сообщения:
    8
    Симпатии:
    0
    Разумно)