PHP.SU

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

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

> Найдено сообщений: 5
Acbir Отправлено: 06 Февраля, 2015 - 15:46:19 • Тема: обработка кирилических доменов сложный запрос регулярки • Форум: Регулярные выражения

Ответов: 3
Просмотров: 324
GoDr пишет:
Acbir, уточняю...
у тебя есть где-то в тексте
Цитата:
http://igum16-1.инфф.рф/
и их нужно преобразовать в
Цитата:
<a href="./goto.html?http://igum16-1.xn--h1akva.xn--p1ai/" target="_blank" rel="nofollow">http://igum16-1.инфф.рф/</a>

Так?

да, таких и других ссылок может быть множество
счас проблема возникает немного другого плана
PHP:
скопировать код в буфер обмена
  1. $html=" 1 http://youtu.be/FLfaXSmS-Ys<br>http://igum16-1.инфф.рф/<br>http://igum16-1.инфф.рф<br>http://IGum16-1.инфф.рф<br>http://igum16-1.ИНфф.рф<br>http://igum16-1.инфф.рф/f15.php<br>http://y.com<br>http://youtube.com<br>http://youtu.be<br>http://sdgwegy.com<br>http://y.com/<br>http://youtube.com/<br>http://www.y.com/<br>http://www.youtube.com/";
  2.     '#(?<!\])\bhttp://(?!youtube.com/)(?!youtu.be/)(?!www.youtube.com/)(?!www.youtu.be/)[^\s\[<]+#i',
  3.     function ($m) {
  4.     return $m[0].' - -> '.idn_to_ascii(iconv('cp1251', 'utf-8', $m[0])).' !!!  ';
  5.     },
  6.     $html
  7. );
  8. echo"<hr>$html<hr>";

результат почти гуд, но есть затык как я понимаю idn_to_ascii если я прально понял то происходит дополнительное экранирование, и команда применяется на значение с этим экранированием, как его обойти?
пример правильной выдачи
http://igum16-1[dot]инфф[dot]рф - -> http://igum16-1[dot]xn--h1akva[dot]xn--p1ai !!!
а тут уже касячит Недовольство, огорчение
http://igum16-1[dot]инфф[dot]рф/ - -> http://igum16-1[dot]xn--h1akva[dot]xn--/-4tbm !!!
http://igum16-1[dot]инфф[dot]рф/f15.php - -> http://igum16-1[dot]xn--h1akva[dot]xn--/f15-f6dy.php !!!
Acbir Отправлено: 06 Февраля, 2015 - 11:06:29 • Тема: обработка кирилических доменов сложный запрос регулярки • Форум: Регулярные выражения

Ответов: 3
Просмотров: 324
жаль что не нашлось тех кто помог бы , тема не актуальна
Acbir Отправлено: 05 Февраля, 2015 - 13:48:20 • Тема: обработка кирилических доменов сложный запрос регулярки • Форум: Регулярные выражения

Ответов: 3
Просмотров: 324
не могу совместить две регулярки. есть две рабочие регулярки, помогите совместить никак не получается мозг уже взорвался
это корректно преобразует кирилические домены в латинские
PHP:
скопировать код в буфер обмена
  1. $str = preg_replace("/(\w+)/e","strtolower(idn_to_ascii(iconv('cp1251', 'utf-8','$1')))", "http://igum16-1.инфф.рф/f15.php");

эта корректно меняет латинские на гиперссылки
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('#(?<!\])\bhttps://(?!youtube.com/)(?!youtu.be/)(?!www.youtube.com/)(?!www.youtu.be/)[^\s\[<]+#i',"<a href=./goto.html?$0 target=_blank rel=nofollow>$0</a>",$text);

работает и меняет все как надо
но у меня не получается все отладить в одном нужном запросе
PHP:
скопировать код в буфер обмена
  1. $text = preg_replace('#(?<!\])\bhttp://(?!youtube.com/)(?!youtu.be/)(?!www.youtube.com/)(?!www.youtu.be/)[^\s\[<]+#ei',"strtolower(idn_to_ascii(iconv('cp1251', 'utf-8','$0')))",$text);
  2.  

вот нормально работающий код меняет http://igum16-1[dot]инфф[dot]рф/f15.php на http://igum16-1[dot]xn--h1akva[dot]xn--p1ai/f15.php
а у меня выводит http://igum16-1[dot]xn--h1akva[dot]xn--/f15-f6dy.php
, но http://igum16-1[dot]инфф[dot]рф и там и там все нормально http://igum16-1[dot]xn--h1akva[dot]xn--p1ai
плюс это просто замена домена, но еще остается преобразование в гипер ссылку, с этим вообще беда, как только не пробую делать, если в конструкцию вставляю
PHP:
скопировать код в буфер обмена
  1.  $text = preg_replace('#(?<!\])\bhttp://(?!youtube.com/)(?!youtu.be/)(?!www.youtube.com/)(?!www.youtu.be/)[^\s\[<]+#ei',"strtolower(idn_to_ascii(iconv('cp1251', 'utf-8','<a href=./goto.html?$0 target=_blank rel=nofollow>$0</a>')))",$text);
  2.  

то касячит наверное по причине ошибки описанной чуть выше, но хотелось бы чтоб работало как то так
PHP:
скопировать код в буфер обмена
  1.  $text = preg_replace('#(?<!\])\bhttp://(?!youtube.com/)(?!youtu.be/)(?!www.youtube.com/)(?!www.youtu.be/)[^\s\[<]+#ei',"<a href=./goto.html?$0 target=_blank rel=nofollow>(strtolower(idn_to_ascii(iconv('cp1251', 'utf-8','$0'))))</a>",$text);
  2.  

то есть меняло ссылку в тегах, а не в тексте

должно множество ссылок плана:
CODE (html):
скопировать код в буфер обмена
  1. http://igum16-1.инфф.рф/

преобразовать в

CODE (html):
скопировать код в буфер обмена
  1. <a href="./goto.html?http://igum16-1.xn--h1akva.xn--p1ai/" target="_blank" rel="nofollow">http://igum16-1.инфф.рф/</a>
  2.  
Acbir Отправлено: 18 Апреля, 2013 - 14:57:51 • Тема: проблемы после смены по php 5.4.12 • Форум: Вопросы новичков

Ответов: 2
Просмотров: 118
LIME спасиб
угу оказались все теже & Недовольство, огорчение видать перетрудился тогда, жаль не могу спасибо поставить, но все одно при огромно благодарен за ответ
Acbir Отправлено: 17 Апреля, 2013 - 15:53:58 • Тема: проблемы после смены по php 5.4.12 • Форум: Вопросы новичков

Ответов: 2
Просмотров: 118
проблемы после смены ПО на php 5.4.12
есть форум IPB v2.3.6
часть нюансов подправил но столкнулся впервые с одной ошибкой, не могу понять причину и информации по аналогичным ситуациям никак не найду
все почти работает, но почему то некоторые файлы (хотя права доступа , стоят аналогичные на все) не хотят работать, при этом не выдают никаких ошибок, на форуме затыки на таких файлах заканчиваются белым листом
и даже если в файлы добавить в самом начале что то типо echo"wqeqwe";
не выводит ничего не только в скриптах, но и если запустить эти файлы через ssh
ошибок никаких не выдает, но и результата нет Недовольство, огорчение
подскажите куда копать, заранее спасибо

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB