<div>
<map id="img_1" name="img_1">
<area shape="poly" alt="читать" coords="11,24,12,106,27,106,26,25" href="/reader/index.php?book=1&list=1" title="Ищущий ветра" target="_self" method="get"/>
<area shape="default" nohref="nohref" alt="" />
</map>
Вот мой код:
//Организуем арею книги на полке
$file = file("../shelf.php");
for($i = 0; $i < sizeof($file); $i++)
if ($file[$i] == '<map id="img_'.$_POST['type'].'" name="img_'.$_POST['type'].'">') {
$file[$i+1] = '<area shape="poly" alt="читать" coords="'.$_POST['coord'].'" href="/reader/index.php?book='.$_POST['num'].'&list=1" title="'.$_POST['name'].'" target="_self" method="get"/>';
}
$fp = fopen("../shelf.php", "w");
fputs($fp, implode("", $file));
fclose($fp);
То есть скрипт ищет строку, соответствующую нужной карте (из нескольких). И на следующей строчке вроде как должен написать хоть что-то. В чём же дело?
Спустя 9 часов, 17 минут, 24 секунды (29.11.2010 - 11:24) vagrand написал(а):
Читай про регулярные выражения
Спустя 1 час, 42 минуты, 24 секунды (29.11.2010 - 13:06) sergeiss написал(а):
Меня другое интересует... В чем задача состоит? Опиши её подробнее. Мне так кажется, что можно будет найти более правильное решение, чем поиск и замена кода в HTML.
Спустя 2 часа, 35 минут, 28 секунд (29.11.2010 - 15:42) Crater написал(а):
хм. ну вся соль в том, что есть картинка книжной полки. я создаю админку, где можно было бы добавлять туда ссылки на книжки (ну, сами книжки тоже добавляются в той же админке, но с этим проблем не возникает. То бишь открываем фотошоп, смотрим координаты, вбиваем (помимо прочего) их, и все счастливы. Помимо того что я описал надо ещё смещать строку, чтобы потом было куда добавлять, но пока у меня и запись то не получается.
Спустя 3 часа, 11 минут, 37 секунд (29.11.2010 - 18:53) Crater написал(а):
vagrand, спасибо за совет. Почему-то упустил их при изучении. Кое-где они уже помогли, но в конкретном месте как-то не получается.
Что я делаю не так?
$file = file("../shelf.php");
$pattern = '/<map id="img_'.$_POST['type'].'" name="img_'.$_POST['type'].'">/Uis';
$replacement = '<map id="img_'.$_POST['type'].'" name="img_'.$_POST['type'].'">\r\n<area shape="poly" alt="читать" coords="'.$_POST['coord'].'" href="/reader/index.php?book='.$_POST['num'].'&list=1" title="'.$_POST['name'].'" target="_self" method="get"/>\r\n';
$file = preg_replace($pattern, $replacement, $file);
$fp = fopen("../shelf.php", "w");
fputs($fp, implode("", $file));
fclose($fp);
Что я делаю не так?
Спустя 2 часа, 41 минута, 53 секунды (29.11.2010 - 21:35) sergeiss написал(а):
Неправильно ты подошел к решению, как мне кажется... Не надо ничего искать и заменять, а надо просто "тупо" прописывать новые значения. Иначе ты запутываешь сам себя.
Тебе надо создать БД, куда записываешь сначала имя картинки, а потом связываешь некую область этой картинки с неким текстом (названием книги). И потом повторяешь это в цикле. А потом, при создании страницы, просто показываешь картинку и под ней прописываешь нужные ареа.
Например, как тут вот, в этой теме http://phpforum.su/index.php?showtopic=22888 Там есть ссылка на картинку http://owndesign.ru/tests/rotate/rotate_graph_2d_test2.php, которая создается автоматически по определенным параметрам. Очень близко к твоей задаче. У тебя проще, потому что координаты ареа прописываются один раз и навсегда.
Тебе надо создать БД, куда записываешь сначала имя картинки, а потом связываешь некую область этой картинки с неким текстом (названием книги). И потом повторяешь это в цикле. А потом, при создании страницы, просто показываешь картинку и под ней прописываешь нужные ареа.
Например, как тут вот, в этой теме http://phpforum.su/index.php?showtopic=22888 Там есть ссылка на картинку http://owndesign.ru/tests/rotate/rotate_graph_2d_test2.php, которая создается автоматически по определенным параметрам. Очень близко к твоей задаче. У тебя проще, потому что координаты ареа прописываются один раз и навсегда.
Спустя 2 часа, 38 минут, 56 секунд (30.11.2010 - 00:14) Crater написал(а):
Ну... через анус, однако сделал уже =) Главное - работает.
_____________