2009-03-24 4 views
0

Я хочу открыть блокнот из файла php, а блокнот должен содержать текст, который я объявляю как строку в php-файле. по существу, блокнот должен открываться с текстом, который я передаю из файла php.Открытие блокнота из PHP

+0

Этот серверный php, который не может, или PHP CLI? – Ikke

+0

Этот вопрос не плох, это распространенное заблуждение для начинающих. –

+0

Не хотите ли вы что-то вроде текстового редактора в Интернете? – Gumbo

ответ

1

Возможно выполнение программы с php, но только на стороне сервера.

Итак, представьте себе, что сервер работает под управлением Windows, он будет запускать блокнот на стороне сервера.

PHP запускается на сервере и не имеет ничего общего с тем, что работает на стороне клиента.

10

Если файл PHP выполняется на веб-сервере, вы не можете заставить веб-браузер открывать новый процесс. Я уверен, что вы можете себе представить, что будет дырой в безопасности!

Если вы используете PHP-файл в качестве локального сценария в режиме CLI, вы должны иметь возможность запускать блокнот, как и любой другой процесс, например. с помощью backticks или exec т.д.

Однако, если вы действительно хотел сделать это на стороне сервера, то лучшее, что вы можете сделать, это есть PHP скрипт, который использовал Content-Disposition заголовок, например,

//tell client we're delivering text 
header('Content-type: text/plain'); 

//hint that it's a downloadable file 
header('Content-Disposition: attachment; filename="textfile.txt"'); 

//output our text 
echo "The quick brown\nfox jumps over\nthe lazy dog."; 

Пользователь может затем сохранить этот файл и открыть его в своем избранном редакторе.

0

Сначала вы можете «создать» файл и заполнить его текстом.

Выполнение команды оболочки: $ эха текста >> $ файла затем выполнить: блокнот $ filenameToOpen

это так.

3

Вы не можете заставить PHP открывать окно на машине пользователя, потому что PHP полностью запущен на сервере. К моменту выхода в браузер сценарий, как правило, прекращается - вы можете делать только то, что можете попросить обозреватель, и то, что он позволит вам (используя HTML/заголовки и т. Д.). В целях безопасности браузер не будет (или не должен) позволять произвольному веб-сайту делать очень многое с вашей машиной - например, он не позволит вам запускать новые процессы Windows.

Лучшее, что я думаю, что вы могли бы сделать что-то вроде этого:

$string = 'a string'; 

header('Content-type: text/plain'); 
header('Content-Disposition: attachment; filename="file.txt"'); 

echo $string; 

Это будет посылать соответствующие заголовки так, что браузер будет рассматривать содержание как скачать называется file.txt типа обычного текста. Браузер должен попросить их загрузить файл, который, вероятно, будет открыт в блокноте, если они не изменили ассоциацию файлов для .txt.

Однако вы не сможете получить никаких изменений, которые пользователь внесет в документ, если вы не попросите их загрузить его, поэтому я не уверен, что это хорошее решение для того, что вы пытаетесь достичь.

+0

хорошее предложение! –

+0

Большинство веб-браузеров в наши дни откроют текст/равнину. – JoshJordan

+0

@JoshJordan: даже если вы указываете контент-расположение: вложение и т. Д.? –

1

Технически для этого вам необходимо создать файл, а затем выполнить систему с этим файлом в качестве параметра. Что-то вроде этого:

//String to show in notepad 
$myStringToDisplay = "some text to show in notepad"; 

//Write this string to a file 
$myFile = "somefile.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
fwrite($fh, $myStringToDisplay); 
fclose($fh); 

//Execute notepad with this file as a parameter 
system("notepad.exe ".$myFile); 

Однако, это будет выполнять Блокнот на сервере файл PHP (если системные вызовы даже включен на сервере), который, вероятно, не то, что вы хотите сделать.PHP не может выполнить какой-либо код на клиентской машине и, конечно же, не может сделать системный вызов для выполнения любой программы, которую он хочет на клиенте (слава богу). Это было бы огромное, огромное нарушение безопасности.

Если это не соответствует желаемой функциональности, сообщите нам, что вы пытаетесь сделать и почему. Это не похоже на очень разумный запрос.

1

Невозможно открыть программу из приложения php. Но вы загрузите текстовый файл с помощью текстового редактора PHP. Вы также сможете загрузить значения, о которых вы говорите.

http://www.fckeditor.net/ является одним из таких редакторов.

0

Чтобы открыть блокнот из скрипта php, мы будем использовать межфазную линию командной строки. Во-первых, мы создадим один файл PHP в том, что мы будем писать:

var_dump(popen('notepad','r')); 

Тогда мы сэкономим, что с каким-то именем, как notepad.php затем откройте командную prompat там мы дадим путь нашего файла, чтобы запустить наш файл например:

d:/>wamp>www>php notepad.php 

Он запустит наш php-файл, и он будет открывать notpad.