[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что касается скрипта редактирования файла.
Crater
Итак, есть файл.php. Нужно поменять ему код. В частности надо добавить html карте новую арею.


<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 написал(а):
Неправильно ты подошел к решению, как мне кажется... Не надо ничего искать и заменять, а надо просто "тупо" прописывать новые значения. Иначе ты запутываешь сам себя.

Тебе надо создать БД, куда записываешь сначала имя картинки, а потом связываешь некую область этой картинки с неким текстом (названием книги). И потом повторяешь это в цикле. А потом, при создании страницы, просто показываешь картинку и под ней прописываешь нужные ареа.

Например, как тут вот, в этой теме smile.gif 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 написал(а):
Ну... через анус, однако сделал уже =) Главное - работает.


_____________
Цитата
Я не потерпел неудачу. Я просто нашел десять тысяч способов, которые не работают.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.