- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
туплю страшно... никак не получается.. в гугле найти не могу...
просто вытащить с url название файла получается...!!
(это примерно так: $path =~ /.*[/\\](.*)/; $file = $1;)
========
а вот есть много url в тексте, то не получается...
надо сделать что-то вродебы такое:
т.е. есть src
в src="" находится такой путь, например:
(ТОЛЬКО путь может быть разный, но примерно такой)
как выбрать файл? и поставить его в $2 т.е. в $patch_pic_site$2 ??
rtyug, если я правильно вас понял, то у вас код в примере работает таким образом, что в $2 попадает не только имя файла ("sdfsdf.jpg"), а полный путь к нему ("./sdfsdf/sdf/sd/sdfsdf.jpg"), а нужно лишь имя файла?
Тогда нужно просто сделать алгоритм жадным, чтобы он искал не до первого символа "/", а до последнего:
$text =~ s#<v:imagedata src="(.*\/)(.*?)" (.*?)\/>#--><img src="$patch_pic_site$2" alt="" \/><!--#igs;
И ещё к вам вопрос: а в чём сакральный смысл захвата трёх частей текста, если вы используете только одну из них? Может, имеет смысл сделать так:
$text =~ s#<v:imagedata src=".*\/(.*?)" .*?\/>#--><img src="$patch_pic_site$1" alt="" \/><!--#igs;
этот вариант
$text =~ s#<v:imagedata src=".*\/(.*?)" .*?\/>#--><img src="$patch_pic_site$1" alt="" \/><!--#igs;
срубает текст, всю статью рубает...
это потому что "жадные" квантификаторы (.*) они рубают все, потмоу что тут стоит в конце s (igs)
а если в конце s убрать, то тогда замена вообще не будет работать, так как вот эта url может быть так стоять на переносе на другой строке:
без s такое обрабатыватеся не будет....
но как в данном случае файлик взять, что-то не могу представить...
======
хотя, может как-то "забить" на это... руками менять...
у меня кстате, не получается писать рег.выр. в последнее время...
rtyug, да, что-то я сам с жадностью переборщил :)
$text =~ s#<v:imagedata src="(.*?\/)([a-z0-9\.]+)" (.*?)\/>#--><img src="$patch_pic_site$2" alt="" \/><!--#igs;
прокатит? на вашем примере работает :)
спасибо, подошло...
подскажите, почему такое рег. выр.
не хочет работать для такого участка
в тексте?
я уже нормально з###ался, мне ради интереса уже интерсно :)
Я в регулярках страшно туплю, методом тыка мне помогает этот конструктор: http://www.pcre.ru/eval/