Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2015, 09:43   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Запись в файл на сервере. Записать то, что после слеша(/)

Есть сайт site.com. Если перейти site.com/some_text то в файл на сервере должно записаться "some_text ". Если перейти просто site.com - то должно прочитать содержимое файла и вывести его на странице. Как лучше это реализовать?
igrok111 вне форума Ответить с цитированием
Старый 11.09.2015, 10:37   #2
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

через htaccess прописать чтобы все что идет после слеша передавалось на index.php как GET параметр.
а потом в index.php проверять если есть этот параметр то дописывать его значение в файл, если нет то выводить содержимое файла.
Vistar вне форума Ответить с цитированием
Старый 11.09.2015, 10:37   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

ну средствами php вестимо... где наработки? Или опять из оперы - мне надо - быстренько сделайте
ADSoft вне форума Ответить с цитированием
Старый 11.09.2015, 11:13   #4
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Скажем так, мне не важно после слэша именно. Можно и так, даже лучше в таком виде:
site.com/?q=some_text
Я думаю сначала на JS получить url, спарсить то, что после =, и только потом, и уже на PHP занести в файл. В этом случае понадобиться возиться с htaccess ?
igrok111 вне форума Ответить с цитированием
Старый 11.09.2015, 11:28   #5
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от igrok111 Посмотреть сообщение
Я думаю сначала на JS получить url, спарсить то, что после =, и только потом, и уже на PHP занести в файл. В этом случае понадобиться возиться с htaccess ?
не понадобится.
зачем тут js? можно тогда просто $_GET['q'] в php использовать
Vistar вне форума Ответить с цитированием
Старый 11.09.2015, 11:29   #6
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Я принял решение использовать конструкцию: site.com/?some_text
Получаю: "?some_text" так:
В index.php:
Код:
<script type="text/javascript">
alert(decodeURIComponent(window.location.search));
</script>
Как удалить ? и как теперь это слово записать в файл?

upd: Переделал как посоветовали выше с site.com/?q=some_text:
Код:
<?php
echo htmlspecialchars($_GET["q"]);
?>
Но как сделать что бы кириллицу нормально отображало? Аналог decodeURIComponent?

Последний раз редактировалось igrok111; 11.09.2015 в 11:34.
igrok111 вне форума Ответить с цитированием
Старый 11.09.2015, 11:36   #7
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Цитата:
Но как сделать что бы кириллицу нормально отображало? Аналог decodeURIComponent?
Добавь перед echo
Код:
header('Content-Type: text/html; charset=utf-8');
Vistar вне форума Ответить с цитированием
Старый 11.09.2015, 11:52   #8
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Так я получаю содержимое файла:
Код:
$f = fopen("file.txt", "r");

	while(!feof($f)) { 
	    echo fgets ($f); 
	}


	fclose($f);
Как мне сделать проверку, на сайт заходят напрямую site.com или с site.com/?q=
Нужно проверить, если есть q - значит вывести то, что после q, если нет - то вывести содержимое файла.
igrok111 вне форума Ответить с цитированием
Старый 11.09.2015, 11:55   #9
Vistar
учащийся
Форумчанин
 
Аватар для Vistar
 
Регистрация: 26.04.2009
Сообщений: 144
По умолчанию

Цитата:
Сообщение от igrok111 Посмотреть сообщение
Как мне сделать проверку, на сайт заходят напрямую site.com или с site.com/?q=
Нужно проверить, если есть q - значит вывести то, что после q, если нет - то вывести содержимое файла. .
PHP код:
if (isset($_GET['q'])) {
                
// параметр есть, записываем в файл
            
} else {
                
// Выводим содержимое файла
            

Vistar вне форума Ответить с цитированием
Старый 11.09.2015, 12:04   #10
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Спасибо, задача выполнена(получилось как хотел). Вот такой весь код
Код:
<?php
header('Content-Type: text/html; charset=utf-8'); 


if (isset($_GET['q'])) { 

	$f = fopen("file.txt", "w");
	fwrite($f, $_GET["q"]); 
	fclose($f);
	$f = fopen("file.txt", "r");
	echo fgets($f); 
	fclose($f);

            } else { 

        	 $f = fopen("file.txt", "r");
		 while(!feof($f)) { 
	 	echo fgets ($f); 
	}

	fclose($f);
            }  

?>
igrok111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программе после установки не хватает прав на запись в файл Dux Общие вопросы Delphi 17 16.08.2015 11:50
Запись онлайн радиостанции в файл на сервере-как? BACKSEET Общие вопросы по Java, Java SE, Kotlin 2 15.11.2013 13:51
Файлы(PascalABC). Дан символьный файл f. Записать в файл g с сохранением порядка следования символы файла f после символа 'a' Артемdgty Помощь студентам 0 09.10.2013 00:39
Макрос записать файл после каждого изменения Konstantin_Z Microsoft Office Excel 6 06.02.2013 15:05
Проблема! Пишет что на сервере нет файла, но файл точно делает свою роботу. Pein95 PHP 2 10.05.2012 11:03