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

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

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

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    <table id="stats">
    <tr>
    <td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://site.ru/xxx.php/0000000/47BOMBER.gif" title="Бомбардировщик" alt="Бомбардировщик" class="image" /></a></td>
    		<td style="vertical-align: top;"><a href=http://site.ru/xxx.php/0000000/47" title="" class="link">Бомбардировщик</a> (69 в наличии) <br />
    		Бомбардировщик был защиту.<br />
    		Необходимо Металл: 50.000 Кристалл: 25.000 Дейтерий: 15.000 <br />
    		Время строительства 00:45:00		</td>
    		<td><input type="text" name="40" value="0" size="3" maxlength="4" class="center" /></td>
    	</tr>  <tr>
    		<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://uni1.darkstar-nn.ru/images/buildings/STAR_DESTROYER.gif" title="Уничтожитель " alt="Уничтожитель " class="image" /></a></td>
    		<td style="vertical-align: top;"><a href="http://site.ru/xxx.php/0000000/47" title="" class="link">Уничтожитель </a> (16 в наличии) <br />
    		 	Уничтожитель - король среди военных кораблей. Его мультифланговые ионные, плазменные и гауссовые орудийные .<br />
    		Необходимо Металл: 60.000 Кристалл: 50.000 Дейтерий: 15.000 <br />
    		Время строительства 01:06:00		</td>
    		<td><input type="text" name="41" value="0" size="3" maxlength="4" class="center" /></td>
    </tr>
    </table>
    
    <script type="text/javascript">
    
    (function(document, test)
    {
      if(test)
      {
        document = { documentElement: document.getElementById('stats') }
      }
    
      var pattern = /link">Уничтожитель[\s\S]+Время строительства ([\d:]+)/i;
      var target  = document.documentElement.innerHTML;
    
      var result  = target.match(pattern);
    
      alert(result && result[1]);
    })(document, true);
    
    </script>
    Хотя, может, стоит посмотреть в сторону xpath?
     
  2. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    я делаю антиличь через .htaccess и в папке например стоит файл .htaccess и мне надо чтобы он делал редирект например на файл
    file/1.exe но чтобы могли зайти только с определенного айпи и получить редирект.

    например я зашел в папку с не того айпи что прописан и ошибка а то кто с того то редирект на тот файл но чтобы ссылки на файл не видно было
     
  3. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Заюзать Order по типу
    Code:
    Order deny, allow
    Deny from all
    Allow from [valid-IP]
    
    А правило записать что-то типа
    Code:
    RewriteRule ^file/?.+$ file/1.exe
    
     
  4. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    а можно юзать и то и то в одноф файле
     
  5. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    alwex Что значит в одном файле?
    Code:
    Order deny,allow
    Deny from all
    Allow from [valid-IP]
    RedirectMatch .* http://site.ru/file.exe
    
     
    _________________________
    1 person likes this.
  6. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    ааа, спс. как всегда выручаешь
     
  7. LeRick

    LeRick New Member

    Joined:
    6 Jun 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    Сегодня впервые попробовал разобраться с пхп...:)
    Пробую исправить недочеты в скрипте вап клик-клуба. И не могу никак сделать шаблон preg_match для ввода url в профиль.
    Мне нужно, чтобы в поле для адреса можно было вставить только url. Без http.
    Есть такой шаблон if(preg_match("/^((\w+\.){1,})\w{2,}$/i", $link))
    но он не пропускает урлы с знаками ? и вобще все ссылки, отличные от sait.com
    Помогите пожалуйста.
     
  8. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    есть некая страница в которой все ссылки вида
    article/index.php?id_page=21

    каким образом можно их переделать в ЧПУ ? тобишь чтоб уже когда страница загрузилась все ссылки были articles21.html

    прописал
    RewriteEngine On
    RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1

    но всеравно на странице все ссылки ....index.php?id_page=21

    или надо все ссылки переписывать во всех файлах???
     
  9. SleepShadowWeb

    Joined:
    2 Feb 2006
    Messages:
    26
    Likes Received:
    15
    Reputations:
    0
    может вместо:
    RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1

    нужно:
    RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_page=$1
     
  10. MaSTeR GэN

    MaSTeR GэN Member

    Joined:
    23 May 2008
    Messages:
    102
    Likes Received:
    54
    Reputations:
    7
    ребят в php не силен (подскажите плиз регуляку для поиска текста между двумя 0x1 То есть что то вроде 0x1[text]0x1 заранее благодарен )))
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
    $a 
    '0x1 blf-blf 0x1';
    preg_match_all('|0x1(.*)0x1|',$a,$res);
    print_r($res[1]);
    ?>
     
  12. svesve

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

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    это я ошибся все правильно там id_page стоит просто не ту запись скопирнул
    суть вопроса таже
     
    7 people like this.
  13. alwex

    alwex New Member

    Joined:
    14 Dec 2008
    Messages:
    137
    Likes Received:
    4
    Reputations:
    2
    помогите сново)))

    у меня в базе храниться так

    Текст<br />Текст<br /> надо чтобы оно подсчитало количество этих Текст
    Текст это (.*)
     
  14. j0ker13

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

    Joined:
    28 Jul 2008
    Messages:
    199
    Likes Received:
    16
    Reputations:
    5
    что за прикол?
    выдает только =
    а
    d=7546628731245181042
    :)
     
  15. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Народ объясните человеческим языком что за символ "^" (без ковычек)
    Просто я ни как не могу разжевать что это за символ! (читал несколько описаний все равно не понятно)
    Ах да еще вместе с примерчиком!
     
  16. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    ^ крышка, обозначает любой символ кроме тех ,которые перечислены после [^ и до].
    пример:
    PHP:
    <?php
    echo preg_replace('/[^*.примерчиком!]/','<font color=red>бла</font>',"Ах да с примерчиком!");
    ?>
    заменит все кроме "примерчиком!"
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    L I G A Вы не правы. Ваша регулярка заменит много чего лишнего и не один раз

    diznt Внутри квадратных скобок (например [^abcdef]) будет означать инверсию, то есть "любой знак, но НЕ a,b,c,d,e,f"

    Вне квадратных скобок - будет означать начало строки. Например preg_match('/^abcd/' ....) будет искать строку начинающуюся на "abcd"
     
    _________________________
    1 person likes this.
  18. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    в данном случае она не заменит лишнего поскольку в предыдущих словах нет букв и символов которые есть в "примерчиком!",ну а "*" да сори автоматом поставил,там 1 раза хватит.
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    L I G A Достаточно универсально НАДЕЯТЬСЯ что буквы из ПРОИЗВОЛЬНОЙ фразы не встретятся до нее, это раз. Вас можно было понять так - конструкция [^текст] позволяет исключить СЛОВОСОЧЕТАНИЕ, а не каждую отдельную букву из набора, это два. Три - хорошо, что PCRE модуль умен, иначе бы конструкция [^.] (с точкой внутри) исключала бы ЛЮБЫЕ символы в принципе
     
    _________________________
  20. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    2 спасибо за понимание.
    3 что то вы бред несете сударь точка внутри [] теряет свой смысл
    "любой символ" и обозначает простую точку .
    >>иначе бы конструкция...
    на иначе я вам скажу тоже не универсально надеяться.
     
    #540 L I G A, 2 Jul 2009
    Last edited: 2 Jul 2009
Thread Status:
Not open for further replies.