PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
rudoy24 Отправлено: 20 Апреля, 2017 - 11:14:55 • Тема: RewriteCond (в обратном порядке) • Форум: Вопросы новичков

Ответов: 0
Просмотров: 85
Есть редирект:

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteCond %{HTTP_HOST} ^site.com$ [NC]
  2. RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
  3. RewriteRule ^index\.php$ http://site.com/ru/ [R=301,L]


Имеем: на странице site.com при переходе по site.com/index.php откроется страница site.com/ru/.

Как сделать в обратном порядке: на странице site.com/ru/ при переходе по site.com/index.php откроется страница site.com ?

Да, еще, что бы оба варианта прописанные в .htaccess работали корректно!
rudoy24 Отправлено: 06 Октября, 2015 - 10:14:50 • Тема: Замена за исключением значений между тегами • Форум: Регулярные выражения

Ответов: 2
Просмотров: 432
РЕШЕНО!
Возможно код громоздкий, но работает. Если есть у кого-то другие варианты, просьба поделится.
----------------------------
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $xx='<p>...</p>
  4. <p>...</p>
  5. <table>
  6. <tr>
  7. <td><p>...</p></td>
  8. <td><p>...</p></td>
  9. </tr>
  10. </table>
  11. <p>...</p>
  12. <blockquote><p>...</p></blockquote>
  13. <p>...</p>';
  14.  
  15. $mask='<<<%s>>>';
  16. $pl=array();
  17.  
  18.     '~<table>.*?</table>~is',
  19.     function($m) use (&$pl,$mask){
  20.         $pl[]=$m[0];
  21.        return sprintf($mask,count($pl));
  22.     },
  23.     $xx
  24. );
  25.  
  26.     '~<blockquote>.*?</blockquote>~is',
  27.     function($m) use (&$pl,$mask){
  28.         $pl[]=$m[0];
  29.        return sprintf($mask,count($pl));
  30.     },
  31.     $xx
  32. );
  33.  
  34. $tt=preg_replace('/<\/p>/', '</p>text', $yy);
  35.  
  36.     '~'.sprintf(preg_quote($mask,'~'),'(.*?)').'~si',
  37.     function($m) use ($pl){
  38.         return $pl[$m[1]-1];
  39.     },
  40.     $tt
  41. );
  42. print_r($zz);

----------------------------
rudoy24 Отправлено: 05 Октября, 2015 - 18:26:11 • Тема: Замена за исключением значений между тегами • Форум: Регулярные выражения

Ответов: 2
Просмотров: 432
Следующим кодом возможно добиться исключения вставки слова "text" между тегами <table>, но как еще добится и того что бы не вставляло между тегами <blockquote>?
----------------------------
PHP:
скопировать код в буфер обмена
  1. $xx='<p>...</p>
  2. <p>...</p>
  3. <table>
  4. <tr>
  5. <td><p>...</p></td>
  6. <td><p>...</p></td>
  7. </tr>
  8. </table>
  9. <p>...</p>';
  10.  
  11. $mask='<<<%s>>>';
  12. $pl=array();
  13.  
  14. $yy=preg_replace_callback(
  15. '~<table>.*?</table>~is',
  16. function($m) use (&$pl,$mask){
  17. $pl[]=$m[0];
  18. return sprintf($mask,count($pl));
  19. },
  20. $xx
  21. );
  22.  
  23. $tt=preg_replace('/<\/p>/', '</p>text', $yy);
  24.  
  25. $zz=preg_replace_callback(
  26. '~'.sprintf(preg_quote($mask,'~'),'(.*?)').'~si',
  27. function($m) use ($pl){
  28. return $pl[$m[1]-1];
  29. },
  30. $tt
  31. );
  32. print_r($zz);

----------------------------
rudoy24 Отправлено: 04 Октября, 2015 - 11:23:46 • Тема: Замена за исключением значений между тегами • Форум: Регулярные выражения

Ответов: 2
Просмотров: 432
Здравствуйте.
Есть код который вставляет после найденых абзацов "<p>...</p>" слово "text".
PHP:
скопировать код в буфер обмена
  1. $after_p = 'text';
  2. $row->text = preg_replace('/<\/p>/', '</p>'. $after_p, $row->text, 5);

Необходимо исключить вставку слова "text" если в теле поиска будет обнаружена <table> или <blockquote> в которых будут находится теги абзацов.

К примеру тело поиска:
CODE (html):
скопировать код в буфер обмена
  1. <p>...</p>
  2. <p>...</p>
  3. <table>
  4. <tr>
  5. <td><p>...</p></td>
  6. <td><p>...</p></td>
  7. </tr>
  8. </table>
  9. <p>...</p>
  10. <blockquote><p>...</p></blockquote>
  11. <p>...</p>

Что должно получится:
CODE (html):
скопировать код в буфер обмена
  1. <p>...</p>text
  2. <p>...</p>text
  3. <table>
  4. <tr>
  5. <td><p>...</p></td>
  6. <td><p>...</p></td>
  7. </tr>
  8. </table>
  9. <p>...</p>text
  10. <blockquote><p>...</p></blockquote>
  11. <p>...</p>text

То есть в таблице и в цитатах после абзацов не добавлять слово "text". Приведенный код выше вставляет "text" и в таблице и в цитатах.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB