За последние 24 часа нас посетили 22463 программиста и 1138 роботов. Сейчас ищут 784 программиста ...

У кого есть идеи кроме регулярного выражения?

Тема в разделе "PHP для новичков", создана пользователем drakonik999, 20 мар 2018.

  1. drakonik999

    drakonik999 Активный пользователь

    С нами с:
    5 сен 2017
    Сообщения:
    156
    Симпатии:
    0
    Есть переменная с $=https://site.com/fars?reg=BU7JIo-21сорок один пять
    Как из этой строки взять только английские слова вместе со символами и цифрами?
    Есть идея создать массив с русским алфавитом и проверять каждую букву. То есть создать цикл который будет каждую букву из переменной проверять в цикле ( 1 буква = 32 цикла или сколько там в русском алфавите букв ) если нашел совпадение то удалить, и так всю строку пройти.
    В итоге останутся только английские символы, и выйдет чистая ссылка без всяких не нужных элементов
    Может у кого то есть идеи по лучше?
    Через регулярки я так уже за, не чего не выходит.
    Так вот без регулярок можно как то по короче ?
     
  2. karmay

    karmay Активный пользователь

    С нами с:
    9 ноя 2017
    Сообщения:
    180
    Симпатии:
    18
    Адрес:
    Н.Новгород
    не совсем понятно, почему надо без регулярок? или хочется написать скрипт, который будет делать то, что делает регулярка?
    Регуляркой русские символы заменить на "" ничего, все будет ок.
     
  3. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Ну во первых проверять всю ссылку посимвольно это просто жесть :)
    Ссылку можно распарсить :)
    Далее, нужно понять конкретно, в чем задача, если тебе нужно обрубить только концовку, это одно, если нужно вытащить польный URL это второе и т.д. Так же не стоит забывать Что в доменном имени и могут присутствовать Кириллические символы.
    Через регулярки я так уже за, не чего не выходит.
    Под "за", подразумевается заЕ ? :)
    Ну, а чисто логически, в регулярке, нам нужно чтоб подстрока начиналась с http:// или https:// , а заканчивалась символом отличным от кириллического.
    Вот прекрасный сайт, очень помогает https://regexr.ru
     
    #3 AlexandrS, 20 мар 2018
    Последнее редактирование: 20 мар 2018
  4. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    @drakonik999, предлагаю такой шаблон: /http[^а-яё]+/iu
    PHP:
    1. $matches = [];
    2. $str = "$=https://site.com/fars?reg=BU7JIo-21&daf=rwqсорок один пять";
    3. preg_match('/http[^а-яё]+/iu', $str, $matches);
    4. var_dump($matches);