[Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.

Discussion in 'PHP' started by .:EnoT:., 19 Nov 2008.

Thread Status:
Not open for further replies.
  1. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Доброй ночи, подскажите пожалуйста регулярку. На странице много таких фрагментов текста:

    Code:
    <a name="[B][COLOR=Navy]zagony.ru[/COLOR][/B]" target="_blank" onclick="cl(this)" href="[COLOR=Green]http://zagony.ru/[/COLOR]">[B][COLOR=Navy]Загоны.ру - самый загонный сайт![/COLOR][/B]</a>
    То, где синий, может быть самый разный текст, а УРЛ, который зеленым, нужно достать в массив.

    Спасибо.
     
  2. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    # Тупо все ссылки:
    preg_match_all('#<a.*?href="(.+?)"#'$content$matches);
    print_r($matches[1]);
     
    1 person likes this.
  3. SsSsSr

    SsSsSr New Member

    Joined:
    11 Oct 2012
    Messages:
    0
    Likes Received:
    2
    Reputations:
    1
    подскажите как в нотепаде ++ удалить в строках все что до ";"
     
  4. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Найти: [^;]+;(.+)
    Заменить на \1
     
  5. SsSsSr

    SsSsSr New Member

    Joined:
    11 Oct 2012
    Messages:
    0
    Likes Received:
    2
    Reputations:
    1
    а так чтобы все в столбиках осталось? оно все в одну строку кидает
     
  6. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    72
    Reputations:
    124
    Хз, у мя все остается на месте, перед отправкой проверял. Если покажешь пару строк из файла будет проще помочью.
     
  7. SsSsSr

    SsSsSr New Member

    Joined:
    11 Oct 2012
    Messages:
    0
    Likes Received:
    2
    Reputations:
    1
    я заменил на символ и потом символ на пробел.
    спасибо
     
  8. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Здравствуйте!

    Есть сайт на битриксе, в каталоге ЧПУ ссылки реализованные стандартными битриксовскими средствами (urlrewrite), ссылки выглядят так:
    Code:
    http://site.ru/catalog/category1/category2/
    нужно через htaccess преобразовать этот урл в нужный, допустим:
    Code:
    http://site.ru/myurl
    Пытаюсь так:
    Code:
    RewriteRule ^myurl(.*)$ /catalog/category1/category2/$1 [L]
    
    # Далее стандартная обработка адресов битрикса
    
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-l
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
      RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
    но такой вариант не прокатывает, выдаёт 404, не уверен что в первой строке нужен [L], но без него тоже не пашет. У битрикса urlrewrite так же может настраиваться через файл 404.php, там я его вырубил, чтобы обработка шла через htaccess.

    Подскажите как решить проблему?

    Спасибо!
     
  9. Kruzak

    Kruzak New Member

    Joined:
    21 Dec 2010
    Messages:
    126
    Likes Received:
    4
    Reputations:
    1
    Подскажите как проверять регуляркой строки txt файла

    количество строк всегда разное

    формат файла:
    Code:
    цифры 5 символов;цифры 8 символов;буквы всех языков, цифры и символы - длина до 50 символов
    разделение частей через точку с запятой ;
    3-я часть строки - это комментарий пользователя для сайта, пользователи могут быть из разных стран и могут пистаь на разных языках в кодировке UTF-8
    вобщем нужно только проверять количество символов до 50 символов

    и подскажите как быть с символами ;;;;;;;; в последней части, этот символ я бы хотел пропускать тоже

    нужно чтобы регулярка проверила все строки сразу
    и если есть хотя бы в одной строке несоответствие выдавала бы false и номер строки если это возможно
     
  10. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    помогите пожалуйста сделать вот такое перенаправление:

    переношу часть информации со старого сайта ucoz, на DLE
    нужно что бы при переходе с ссылки из поисковой системы http://sitename.ru/load/software/programs/virtual_audio_cable/31-1-0-1077
    пользователь попадал на туже страницу, но на dle - там такой вид ссылки:
    http://sitename.ru/load/6-virtual_audio_cable.html

    как составить htaccess?
    ссылок будет 800
    /software/programs/ - эти значения у ucoz переменны, зависят от егошних категорий и подразделов, их нужно игнорировать

    должно получится так если убрать подкатегории ucoz:
    http://sitename.ru/load/virtual_audio_cable/31-1-0-1077

    при заходе по этой ссылке: http://sitename.ru/load/software/programs/virtual_audio_cable/31-1-0-1077
    попасть на эту: http://sitename.ru/load/6-virtual_audio_cable.html

    чпу будет одинаков: у этих ссылок virtual_audio_cable
    6- Это уже id dle материала - он переменный
     
  11. Winst0n

    Winst0n Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    92
    Likes Received:
    5
    Reputations:
    0
    PHP:
    $ch curl_init();
      
    curl_setopt($chCURLOPT_URL'http://ссылка.ру');
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
         
    curl_setopt($chCURLOPT_CONNECTTIMEOUT30);
         
    $data = @curl_exec($ch);
         
    curl_close($ch);
         
         
     
    preg_match_all('|</span> <a href="http://ссылка.ру>(.*)</a></div>|'$data$arr);

    print_r ($arr);
    <div class="sheader margb4"><span class="dremark">№2</span> <a href="http://ссылка.ру">ссылка</a></div>

    что не так ? не могу понять :(
     
  12. Vip77

    Vip77 Elder - Старейшина

    Joined:
    29 Sep 2012
    Messages:
    281
    Likes Received:
    55
    Reputations:
    20
    PHP:
    <?php
    function gindex($url) {
     
    preg_match('#<div id=resultStats>Результатов: примерно (.*?)<nobr>#si'file_get_contents("http://www.google.ru/search?q=site%3A{$url}&safe=off"), $a);

    return 
    trim(str_replace(",","",strip_tags($a[1])));}
    $url 'www.google.ru';
    echo 
    gindex($url);

    ?>
    подскажите что не так с регуляркой
     
  13. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    24
    Likes Received:
    3
    Reputations:
    0
    Помогите, как вытащить из этого куска кода, вот это дело http://test.ru/registration/captcha?_=e0ae6826bbb59447e646914f12d71cf3

    Вот это e0ae6826bbb59447e646914f12d71cf3 всегда новое значение

    PHP:
    <img style="border: 1px #999; background: #fff; border-style: none none none none;" src="http://test.ru/registration/captcha?_=e0ae6826bbb59447e646914f12d71cf3" />
     
  14. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    Возможно ли с помощью php регулярки выявить наличие зашифрованного base_64 текста в переменной среди обычного текста\кода?
    Если возможно, поделитесь регуляркой, пожалуйста.
     
  15. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    Возвращаясь к вопросу отслеживания кода, переформулирую.
    Как на php регуляркой отследить неразрывной текст более 200 символов, который содержит в себе определенные символы, которые я могу указать какие могут быть?
    То есть условие, есть вайт лист с символами и регулярка проверяющая, встречаются ли в тексте символы из вайт листа которые идут подряд, без прочих символов, если они идут подряд более 200 символов, значит код найден.
    Будьте добры, покажите как это на php делается.
     
  16. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Грабитель
    PHP:
    if (preg_match('~['.preg_quote('~!@#$%^&*(''~').']{200,}~msi')) echo 'найдено';
     
    _________________________
  17. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    Спасибо, очень выручил, одно уточнение если можно, куда вставлять переменную с текстом в котором поиск надо производить? то есть мне надо найти текст в переменной $html, куда её тут вставить?
     
  18. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Грабитель http://php.net/preg_match
     
    _________________________
  19. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    можно ли както забанить пользователя по useragent ?
    есть например такая строка: Opera/9.80 (Windows NT 6.1; WOW64; MRA 5.9 (build 4953)) Presto/2.12.388 Version/12.14
    можно ли по ней забанить ?
     
  20. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    да можно.
     
Thread Status:
Not open for further replies.