Замена символа с помощью регулярного выражения

ayrat9

Новичок
Замена символа с помощью регулярного выражения

Имеется много кусков html, типа такого:
-----------------------------------------
........
blah-blah-blah<img border="0" src="/files/pubs/img/53/3_iko.jpg" alt="" style="cursor: pointer;" onclick="window.open('/files/pubs/img/53/3.jpg', '3.jpg', 'width=718, height=483')"/></td></tr><tr>
...
---------------------------------------
Из кода видно, что яваскрипт-функция window.open() не будет работать в IE, т.к 2-й аргумент передан с символом "." (точка). То есть надо '2.jpg' заменить на '2_jpg'
Мне нужно правильно составить условия позиционных проверок, чтобы сваять шаблон для регулярного выражения замены. Сроки поджимают, плиз подскажите (можно на словах), что нужно указать в условиях?

Спасиб.
 

Линка

Новичок
ayrat9
http://phpclub.ru/detail/article/regexp_1 - очень хорошая статья .
Там же есть и похожие примеры.
 

kvf77

Red Devil
ayrat9

еще бы понять, почему у тебя window.open вообще неправильно составлен и причем тут точка и в чем она мешает выполнить указанный код?

window.open("/files/pubs/img/53/3.jpg", "_blank", "toolbar=0, location=0, scrollbars=1, resizable=1, directories=0, status=0, menubar=0, width=718, height=483, top=10, left=10");

Учи JavaScript
 

ayrat9

Новичок
to kvf77
--------------
Шарик, извини, но ты Балбес... :)

Специально для тебя цитирую текст об атрибуте метода window.open()

window.open(url, имя, элементы, замена)

....
ИМЯ
Необязательная строка алфавитно- цифровых символов символов подчеркивания, задающая имя нового окна.
...

Все ссылки на объект window вовсе не обязательно называть _blank: я, например, хочу, чтобы разное содержимое открывалось в разных окнах
 

kvf77

Red Devil
ayrat9

ну и что ты хотел своим замечанием в результате сказать?

читать вообще умеем? http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/open_0.asp

и до полного просветления.

Что за ламеры пошли нафиг - просят совета и при этом берутся учить отвечающих

name здесь вовсе не TITLE, а указание на то, где это окно открывать. каким боком туда твое название картинки может быть вписано лично мне не понятно
 

ayrat9

Новичок
Ну ладно,как ламер ламера прошу переведи в этом топике (чтобы всех нас просветлило):
-------------------------------------------------------------------------
sName Optional. String that specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an a element.
_blank The sURL is loaded into a new, unnamed window.
_media The sURL is loaded into the HTML content area of the Media Bar. Available in Internet Explorer 6 or later.
_parent The sURL is loaded into the current frame's parent. If the frame has no parent, this value acts as the value _self.
_search Available in Internet Explorer 5 and later. The sURL is opened in the browser's search pane.
_self The current document is replaced with the specified sURL .
_top sURL replaces any framesets that may be loaded. If there are no framesets defined, this value acts as the value _self.
-----------------------------------------------------------------------
если не сможешь, я тебе потом поясню
 

kvf77

Red Devil
ayrat9
что я тебе должен перевести? что этот параметр указывает на то, где открывать новое окно подобно параметру target в теге формы или <a>? что еще тебе перевести - значение каждого тега?

я только одного не понимаю - причем тут название твоей картинки?
 

ayrat9

Новичок
String that specifies the name of the window

-~{}~ 19.10.05 12:54:

Почему я должен считать за правду учебное пособие от майкрософт?
В не менее уважаемом издательстве O'Reilly считают по-другому:
"Имя МОЖЕТ выступать в качестве значения атрибута target тегов HTML <a> или <form>"

-~{}~ 19.10.05 12:57:

Вообще от темы сильно отклонились:

просто попробуй код (подставь свои значения):
===========
onclick="window.open('/files/pubs/img/53/3.jpg', '3.jpg', 'width=718, height=483')"
===========
в файрфокс и в ИЕ и расскажи что у тебя получилось
 

Alive4U

Новичок
2 kvf77

что я тебе должен перевести? что этот параметр указывает на то, где открывать новое окно подобно параметру target в теге формы или <a>? что еще тебе перевести - значение каждого тега?
Изви, но ты не прав...
оно указывает не Где открывать, а как будет называться это окно.
И если окно с этим именем уже сущетвует, то откроется в нем, если нет то создаст новое окно с указанным именем. а _blank, _top и т.д. - это просто служебные имена

человек просто хочет, чтобы картинка 3.jpg у него всегда открывалась в окне 3.jpg и если это окно юзверь не закрыл, чтобы не рожалось новое

2 ayrat9
а для замены точки на _ в данном случае, по моему, достаточно str_replace
 

ayrat9

Новичок
Alive4U
----------
Я бы и рад str_replace() воспользоваться, но статей: во-первых много, во-вторых, точка встречается там неоднократно не только в яваскипт-коде.

Плюнул, начал вручную править код, благо fck_editor оч-чень удобная штукенция.

-~{}~ 19.10.05 13:27:

Кстати, поясню из своего опыта:


onclick="window.open('/files/pubs/img/53/3.jpg', '3.jpg', 'width=718, height=483')" - откроется только в файрфокс

onclick="window.open('/files/pubs/img/53/3.jpg', '3_jpg', 'width=718, height=483')" - откроется в обоих браузерах
 

Andreika

"PHP for nubies" reader
PHP:
$s = 'blah-blah-blah<img border="0" src="/files/pubs/img/53/3_iko.jpg" alt="" style="cursor: pointer;" onclick="window.open(\'/files/pubs/img/53/3.jpg\', \'3.jpg\', \'width=718, height=483\')"/></td></tr><tr>';

echo preg_replace("/(window.open\('\/files\/pubs\/img\/\d+\/\d+\.jpg', '\d+)\.jpg'/","\\1_jpg'",$s);
 

ayrat9

Новичок
Андрейка, пасибо за внимание.

Для моего случая оказалось достаточно:
preg_match_all('/\'[a-zA-Z0-9_\-]+\.jpg\'/i', $content, $matches);

и потом уже str_replace'ом:
$matches2=array();
for ($i=0; $i<count($matches); $i++) $matches2[]=str_replace(array(".", "-"), array("_", "_"), $matches[$i]);
 
Сверху