Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как убить процесс повторного выполнения скрипта при перезагрузке страницы?
Форумы портала PHP.SU » » Вопросы новичков » Как убить процесс повторного выполнения скрипта при перезагрузке страницы?

Страниц (1): [1]
 

1. Miyagi - 13 Октября, 2015 - 10:09:05 - перейти к сообщению
Други, нужна помощь. Есть скрипт замены значений в js файле. Работает, но проблема в том, что нужно соблюсти условие - если уже замена произошла, остановить выполнение скрипта, так как при каждой перезагрузке страницы он дописывает к значению по еще одной единице. (frame11.php, frame11).
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file = fopen('menu1.js', 'r');
  3. $text = fread($file, filesize('menu1.js'));
  4. fclose($file);
  5. $file = fopen('menu1.js', 'w');
  6. $text = str_replace('</INVENTORY>', '', $text);
  7. $text = str_replace('frame.php', 'frame1.php', $text);
  8. $text = str_replace('frame', 'frame1', $text);
  9. fwrite($file, $text);
  10. fclose($file);
  11. ?>
2. andrewkard - 13 Октября, 2015 - 10:44:49 - перейти к сообщению
Miyagi
Попробуйте добавить комментарий на первой строке файла при первом запуске, в последующем проверяйте, если он есть - пропуск.
(Добавление)
Либо, если это нужно делать периодично, запоминайте в сессии время модификации.
3. Miyagi - 13 Октября, 2015 - 11:05:08 - перейти к сообщению
andrewkard пишет:
Miyagi
Попробуйте добавить комментарий на первой строке файла при первом запуске, в последующем проверяйте, если он есть - пропуск.
(Добавление)
Либо, если это нужно делать периодично, запоминайте в сессии время модификации.


Не понял А как это прописать в скрипте? Я просто еще не могу справиться с синтаксисом. По логике, ему надо найти строку, сравнить, и либо продолжить либо exit.
4. andrewkard - 13 Октября, 2015 - 12:18:24 - перейти к сообщению
Miyagi
Не тестировал:
PHP:
скопировать код в буфер обмена
  1.  
  2. $file = fopen('menu1.js', 'r');
  3. $line = fgets($file);
  4. if (strpos($line,'/*comment*/') !== false){
  5.     exit;
  6. }
  7. $text = fread($file, filesize('menu1.js'));
  8. fclose($file);
  9. $text .='/*comment*/';
  10. $file = fopen('menu1.js', 'w');
  11. $text = str_replace('</INVENTORY>', '', $text);
  12. $text = str_replace('frame.php', 'frame1.php', $text);
  13. $text = str_replace('frame', 'frame1', $text);
  14. fwrite($file, $text);
  15. fclose($file);
  16.  
5. Miyagi - 13 Октября, 2015 - 12:37:08 - перейти к сообщению
andrewkard пишет:
Miyagi
Не тестировал:
PHP:
скопировать код в буфер обмена
  1.  
  2. $file = fopen('menu1.js', 'r');
  3. $line = fgets($file);
  4. if (strpos($line,'/*comment*/') !== false){
  5.     exit;
  6. }
  7. $text = fread($file, filesize('menu1.js'));
  8. fclose($file);
  9. $text .='/*comment*/';
  10. $file = fopen('menu1.js', 'w');
  11. $text = str_replace('</INVENTORY>', '', $text);
  12. $text = str_replace('frame.php', 'frame1.php', $text);
  13. $text = str_replace('frame', 'frame1', $text);
  14. fwrite($file, $text);
  15. fclose($file);
  16.  


К сожалению, не работает... Так же дописывает каждый раз по единице frame11, frame111 и т.д. И добавляет столько же /*comment*/ /*comment*/ в конец файла при каждой перезагрузке страницы.
6. andrewkard - 13 Октября, 2015 - 12:41:32 - перейти к сообщению
Miyagi
Да, ошибочка вышла Улыбка
Замените $text .='/*comment*/';
на
$text ='/*comment*/'.$text;

Посмотрите, на первой строке появились комменты?
7. Miyagi - 13 Октября, 2015 - 12:49:11 - перейти к сообщению
andrewkard пишет:
Miyagi
Да, ошибочка вышла Улыбка
Замените $text .='/*comment*/';
на
$text ='/*comment*/'.$text;

Посмотрите, на первой строке появились комменты?


Появились, но ВМЕСТО первой строки.
Файл меню перестал выводиться на страницу. К стати, (про отображение файла) так стало еще после первой редакции скрипта.
8. andrewkard - 13 Октября, 2015 - 14:04:20 - перейти к сообщению
Miyagi пишет:
Появились, но ВМЕСТО первой строки.

Интересно. Надеюсь ничего не пропало?
Пробуйте еще так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $text ='/*comment*/'.$line.$text;
  3.  

(Добавление)
Miyagi пишет:
Файл меню перестал выводиться на страницу

Что имеется в виду?
9. Miyagi - 13 Октября, 2015 - 14:22:58 - перейти к сообщению
andrewkard пишет:
Miyagi пишет:
Появились, но ВМЕСТО первой строки.

Интересно. Надеюсь ничего не пропало?
Пробуйте еще так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $text ='/*comment*/'.$line.$text;
  3.  


Все заработало, ровно до первого обновления (F5) страницы. Comment прописался на первой строке, и потом после обновления страницы (см. ниже)


(Добавление)
Miyagi пишет:
Файл меню перестал выводиться на страницу

Что имеется в виду?


Файл меню (menu.js) перестал отображаться в браузере. Вместо него чистое поле. Хотя после многократных обновлений страницы, файл перестал перезаписываться.
(Добавление)
Все заработало, большущее спасибо! Я просто перенес код из фрейма куда грузится menu1.js в в тот фрейм, куда собственно и ведут ссылки с menu1.js

 

Powered by ExBB FM 1.0 RC1