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

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

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

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    увы не то, при таком раскладе оно выдает всего 1 результат а мне нужен массив со всеми вариантами
     
  2. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    Нужно спарсить 3-ку , перенос строки на сколько я знаю .*?
    пробовал center\;\">.*?.*?(\d+) не парсит
     
  3. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Переност строки ето модификатор s
    http://ru.wikipedia.org/wiki/Регулярные_выражения
     
  4. vasaeps3

    vasaeps3 New Member

    Joined:
    21 Oct 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    \/div><div>(.*?)<\/div><form там находится русский текст, потом вывожу это значени, апулучается абра-кадабра типа 1Ваше приглашение отправлено.
     
  5. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    iconv()
    c кодировкой поиграй, посмотри какую получаешь и какой выводиш
     
  6. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Это UTF-8 видно невооруженным глазом.
     
  7. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    /
    /forum
    /.htaccess:
    RewriteEngine On
    RewriteRule ^forum$ forum/forum.php

    (есть корень, в нём каталог "forum" и файл ".htaccess" с содержанием, приведённым выше)

    При обращении host.ru/forum пытается найти index-файл в папке ./forum вместо того, чтобы перейти по правилу mod_rewrite.
    Как совершить переход по правилу?
     
    #1347 Ru}{eeZ, 18 Nov 2010
    Last edited: 18 Nov 2010
  8. Alekzzzander

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

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0
    Изменение названия индексной страницы:
    DirectoryIndex forum.php index.html index.php index.shtml

    Перенаправление (редирект) только при запросе определенных страниц:

    redirect /company http://www.newsite.com/newcompany
    redirect /forum http://www.newsite.com/newforum

    При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса.

    з.ы. у тя хоть что то в .htaccess работает?
     
  9. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Первое - не выход, т.к. движок может использоваться на разных серверах. Планируется, что его возможно будет использовать ещё кто-то, а у этого кого-то может не иметься возможности доступа к конфигам web-сервера.

    Второе - не выход, т.к. нельзя никак обратиться к правилу mod_rewrite (именно этому), а оно и нужно, только редиректить напрямую на файл. Ещё минус данного подхода в том, что тогда текущим рабочим каталогом считается ./forum/, а не корень /.
    Всё работает кроме этого правила.

    Может нужно как-то повысить привилегии mod_rewrite над переходом по каталогам?
     
    #1349 Ru}{eeZ, 19 Nov 2010
    Last edited: 19 Nov 2010
  10. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ru}{eeZ либо переименуйте папку forum, либо:
    Code:
    RewriteEngine On
    RewriteRule ^forum/?$ forum/forum.php
    
     
    _________________________
    1 person likes this.
  11. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Я и пользовался переименованной папкой)
    Спасибо, то что надо.
     
  12. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    my (@name) = $resp =~ /<div style="margin: 5px 0 10px\;">(.*)<\/div>тут перенос строки<div class="userinfo">Пол: мужской<\/div>/sgc;
    вот текст который хочу спарсить
    выделил
    <div style="margin: 5px 0 10px;">Спроси-Отвечу-Спрошу=*</div>
    <div class="userinfo">Пол: мужской</div>

    без переноса строки парсит норм. но мне нужно с переносом
     
  13. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    mazaxaka \s* вместо фразы "тут перенос строки"
     
    _________________________
  14. TikTik

    TikTik Member

    Joined:
    20 Feb 2009
    Messages:
    241
    Likes Received:
    12
    Reputations:
    2
    Есть скрипт написаный на php в одну из его переменных нужно втсавить такой вот скрипт редиктера

    PHP:
    <table width="500" border="1" align="center" cellpadding="25" cellspacing="0">
    <
    tr>
    <
    td>
    <
    noindex></p>
    <
    p align="center"><b><font size="5">ВЫ ИСКАЛИ:

    <
    h2>{KEYWORD}</h2>
    <
    p></font></b></p>
    <
    p align="justify"><script language=javascript>
    <!--
    document.write('
    <form id=go method=post action="h' 
    't' 't' 'p://' 'www.s' 'it' 'ess.ru/' 'index.php?search_string=" style="display: none">
    <input type=text name=referrer value="" style="display: none">
    <input type=hidden name=divis value=id>
    <input type=hidden name=sub value=id></form>
    <p>'
    );
    function 
    so(sSearch)
    {
    document.getElementById("go");
    var 
    peredacha = new String(document.referrer);
    var 
    re = new RegExp("&""g");
    var 
    peredachaNew peredacha.replace(re"^^");
    f.referrer.value peredachaNew;
    f.action += sSearch;
    f.submit();
    }
    //-->
    </script>

    <a href="http://www.site.com/" onclick="so('{KEYWORD}'); return false;">Ваш запрос обработан. Для получения результата пройдите по ссылке.</a></p>
    </td>
    </tr>
    </table>
    <p>
    этот код добавляется в скрипт в одинарные кавычки но после того как я вставляю его в скритп он ругается на строку <form <id=go method=post action="h' + 't' + 't' + 'p://' + 'www.s' + 'it' + 'ess.ru/' + 'index.php?

    я так понял что нужно экранировать и ещё что то в этом .js у меня есть к примеру другой скрипт и он вставляется на ура и работает в этом скрипте после того как я экранирую одинарные кавычки вот так


    PHP:
    <script language=\'javascript\'>var1=71;var2=var1;if(var1==var2) document.location="http://site.com/";</script>

    А вот этот первый сделать юзабетельным для скрипта не получается не хватает знаний с регулярками помогите пожалуйста
     
    #1354 TikTik, 4 Dec 2010
    Last edited: 4 Dec 2010
  15. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    как можно в регулярках пхп исключить не символ, а фразу?

    пример:
    PHP:
    строка "test data batch bold"
    надо выбрать "test data batch "

    /test [^b]+/ - так работаетно выбирает все до слова batch
    /test [^bold]+/ - а так не работает
    Можно ли как-то указать в исключении слово или последовательность (типа 0-9)?

    Пробовал применить"негативный просмотр вперёд (с отрицанием)" - (?!шаблон) - но как-то не получилось
     
  16. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    попробуй в /test [^bold]+/ + заменить на ?, т. е. /test [^bold]?/
     
  17. .::BARS::.

    .::BARS::. Elder - Старейшина

    Joined:
    13 Oct 2007
    Messages:
    379
    Likes Received:
    45
    Reputations:
    10

    а так не судьба

    PHP:
    $file=str_replace('bold','','test data batch bold');
    echo 
    $file//test data batch
     
  18. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    SHiNiGaMi

    не помогает

    PHP:
    если есть 2 строки:
    test data batch bold
    test data botch bold

    выражение 
    /(test [^batch]?.*)/ или /(test [^batch]+.*)/ возвращает обе строки

    вот как бы отсеить первую
    содержащую batch?
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс что вы хотите сделать в конечном итоге? Возможно следует последовать совету .::BARS::. и идти от обратного, не пытаться найти "все кроме", а наоборот искать то что не нужно и это уже удалять
     
    _________________________
  20. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    если бы ответа Барса мне хоть сколько-нибудь помог, я бы его прокомментировал
    удалять то что не нужно - не вариант. слишком много лишних данных

    дело не в конкретной задаче
    я хочу найти способ вытаскивать строку по шаблону, внутри которой исключена другая подстрока, а не символ

    пока что ^ позволяет исключить только 1 символ
    в этом и проблема
     
Thread Status:
Not open for further replies.