Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ArthEdit, сохранение рисунка в WYSIWYG редакторе 
:(
    Опции темы
PriZraK
  Дата 22.10.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



ArthEdit v0.2 - сохраняет рисунки последней буквой имени файла, то есть:
пользователь указывает размещение рисунка: d:\images\other\lego.jpg
регулярное выражение данного скрипта преобразует эту строку в ./files/pix/o.jpg

Вот это выражение:
Код

$field = preg_replace("/(?:file\:)?\w\:.*([^\/]+?\.(?:gif|jpg|png|bmp|tiff))/im",'./files/pix/\1',$field);

Не как не могу разобраться, юзал поиск и на этом сайте, и yandex c google, примеры есть, но толку нуль.
Необходимо чтоб после обработки было "./files/pix/lego.jpg"

P.S. Пока искал, нашёл удобный конструктор регулярных выражений:
http://www.pcre.ru/eval/
Возможно, кому-нибудь пригодится...
PM MAIL ICQ Skype GTalk   Вверх
korisarimi
Дата 22.10.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 9.5.2006

Репутация: нет
Всего: 1



Набросаю...

Код

$field=ereg_replace("(.+)(\\\)(.+\\.jpg)","./files/pix/\\3",$str);



Вот так годиться?


Вопрос у меня такой, почему все любят использовать регулярные выражения preg, мне кажется гораздо удобнее ereg?! Я имею ввиду, если использовать регулярку в php


Это сообщение отредактировал(а) korisarimi - 22.10.2006, 21:50
PM MAIL   Вверх
PriZraK
  Дата 23.10.2006, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Цитата(korisarimi @ 22.10.2006,  21:46)
Набросаю...

Код

$field=ereg_replace("(.+)(\\\)(.+\\.jpg)","./files/pix/\\3",$str);


Вот так годиться?

Данное выражение некорректно обрабатывает строку и чувствительна к пути файла smile
Серовно, спасибо за вариант.  smile 
PM MAIL ICQ Skype GTalk   Вверх
korisarimi
Дата 23.10.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 9.5.2006

Репутация: нет
Всего: 1



Можно узнать и в чем оно некорректно обрабатывает строку??
PM MAIL   Вверх
PriZraK
Дата 23.10.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Допустим пользователь указал рисунок "D:\Моя\Документы\Разное\Мои рисунки\1g11.jpg", то есть переменная, вместе с тектом равна:
Код

$field="Добро пожаловать <img src='D:\Моя\Документы\Разное\Мои рисунки\1g11.jpg'> на сайт";

в результате обработки, твоим методом получаем строку:
Код

$field="Добро пожаловать <img src='D:МояДокументыРазноеМои рисунки1g11.jpg'> на сайт";


возможно, что то я не верно делаю...
PM MAIL ICQ Skype GTalk   Вверх
PriZraK
  Дата 23.10.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Все же нашёл на одном из форумов, рабочий пример, в моём случае, код стал выглядеть так:
Код

$field = preg_replace_callback("|src=\"([^\"]+)\"|is","plus_src",$field);
function plus_src($matches) {
    preg_match("|[^/\\\\]+$|",$matches[1],$out);
    return 'src="./files/pix/'.$out[0].'"';
}

PM MAIL ICQ Skype GTalk   Вверх
korisarimi
Дата 23.10.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 9.5.2006

Репутация: нет
Всего: 1



Цитата

возможно, что то я не верно делаю... 


Вот именно. 

Все работает. Я просто не думал, что нужно до такой степени разжёвывать код
Код

<form action="" method="post">
<input type="text" maxlength="150" name="field">
<input type="submit">
</form>
<?
$field=ereg_replace("(.+)(\\\)(.+\\.jpg)","./files/pix/\\3",$field);
echo $field;
?>



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.