Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP и COM-порт
 
 автор: IgorT   (16.07.2007 в 20:08)   письмо автору
 
 

В английском мануале написано что пхп может работать с Com-портом. Вот я и решил ето испробовать но хочу задать несколько вопросов :
1. Работа с ком-портом надеюсь выполняется на стороне клиента ? Тоесть стриница будет работать с портом который есть у меня или на сервере ? (Возможно ето и глупый вопрос).
2. Подскажите пожалуйста где об етом можно больше почитать(не только об том что ето возможно) и желательно на руском. Спасибо!

   
 
 автор: bronenos   (16.07.2007 в 20:15)   письмо автору
 
   для: IgorT   (16.07.2007 в 20:08)
 

с COM объектами а не портами ))

   
 
 автор: cheops   (16.07.2007 в 20:15)   письмо автору
 
   для: IgorT   (16.07.2007 в 20:08)
 

Имеется в виду не COM-порт, а интерфейс COM, который позволяет обращаться к программам в Windows, например, работать из PHP с Excel.

   
 
 автор: IgorT   (17.07.2007 в 01:35)   письмо автору
 
   для: cheops   (16.07.2007 в 20:15)
 

Ну а как же быть с етим :


// Use this code to write directly to the COM1 serial port
    // First, you want to set the mode of the port. You need to set
    // it only once; it will remain the same until you reboot.
    // Note: the backticks on the following line will execute the 
    // DOS 'mode' command from within PHP
    `mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off`;
    $fp = fopen ("COM1:", "w+");
    if (!$fp) {
        echo "Uh-oh. Port not opened.";
    } else {
        $e = chr(27);
        $string  = $e . "A" . $e . "H300";
        $string .= $e . "V100" . $e . "XL1SATO";
        $string .= $e . "Q1" . $e . "Z";
        echo $string;
        fputs ($fp, $string );
        fclose ($fp);
    }



Взял из PHP manual

   
 
 автор: sim5   (17.07.2007 в 02:09)   письмо автору
 
   для: IgorT   (17.07.2007 в 01:35)
 

А зачем это, какое практическое применение этому, тем более что рабочее только на Windows?
Кстати на вот это "Работа с ком-портом надеюсь выполняется на стороне клиента ?" зря надеетесь.

   
 
 автор: Proger   (17.07.2007 в 02:26)   письмо автору
 
   для: IgorT   (17.07.2007 в 01:35)
 

Даже если работа с ком портом есть, то напомним Вам ещё разок: "PHP серверный язык" и парситься на стороне сервера, чтобы обработанную информацию перевести в клиентские языки, то есть HTML, JS и прочее....и отдать уже на машину челу, ну Вы наверное и так знаете. просто немного не подумали =)

   
 
 автор: Trianon   (17.07.2007 в 09:49)   письмо автору
 
   для: IgorT   (17.07.2007 в 01:35)
 

>Ну а как же быть с етим :
> $fp = fopen ("COM1:", "w+");
> fputs ($fp, $string );
> fclose ($fp);

А это работа с файловой системой.
Естественно, на стороне сервера.
И конечно всё будет определяться тем, есть ли в серверной файловой системе псевдофайл COM1: и что он собой представляет.

>Взял из PHP manual
В нем написано что-то другое?

   
 
 автор: IgorT   (17.07.2007 в 12:29)   письмо автору
 
   для: Trianon   (17.07.2007 в 09:49)
 

А есть какая-то возможность выполнить средствами пхп или хтмл команду ОС на клиенте? (Тоесть я хочу например запустить какой то командой Виндовс какуюто програму из бровзера).

P.S. То что конект идет до ком-порта на сервере ето так. У меня апач сразу слетает когда я на клиенте кликаю и выполняю етот код. Но нужно работать например с модемом на стороне клиента, возможно ли такое из браузера ? Тоесть из хтмл или пхп ?

   
 
 автор: sim5   (17.07.2007 в 13:05)   письмо автору
 
   для: IgorT   (17.07.2007 в 12:29)
 

Нельзя. Ваша HTML-страничка это не приложение Windows. Что-то более менее можно сделать (но не с железом) на Windows Script Host. Можете написать свой ActiveX компонент - если вам его разрешат загрузить на стороне клиента, тогда...
С модема на стороне клиента можно с помощью JS что-то куда-то передать. Все.

   
 
 автор: IgorT   (20.07.2007 в 00:49)   письмо автору
 
   для: sim5   (17.07.2007 в 13:05)
 

>С модема на стороне клиента можно с помощью JS что-то куда-то передать.
Ето значит что JS может все таки работать с ком-портом ?

   
 
 автор: sim5   (20.07.2007 в 01:10)   письмо автору
 
   для: IgorT   (20.07.2007 в 00:49)
 

Если ваш модем на COM порте сидит да, но только не JS, а Widows этим заниматься будет.

   
 
 автор: Proger   (20.07.2007 в 03:25)   письмо автору
 
   для: sim5   (20.07.2007 в 01:10)
 

С помощью VBScript можно всё! Его не блокируют антивирусы и виндовз!э
Он может и файлы изменять/запускать и реестр работает с ним, почитайте про него! Очень полезная штука! Наверное это Вам и поможет в решении задачи, хотя конечно то которая ВАм нужна врятли!

   
 
 автор: IgorT   (20.07.2007 в 15:48)   письмо автору
 
   для: Proger   (20.07.2007 в 03:25)
 

>почитайте про него

Хорошо, а где об етом можно почитать ?
И еще одно, можно ли сделать взаимодействие ОС и браузера, так чтобы браузер мог передать какуюто пременную ОС, а она браузеру и так чтобы ета применная могла в дальнейшем использоваться в пхп скрипте ?

   
 
 автор: sim5   (20.07.2007 в 16:19)   письмо автору
 
   для: IgorT   (20.07.2007 в 15:48)
 

Любое Windows приложение взаимодействует с ОС и браузер тут не исключение. С точки зрения ОС он ничем не отличается от любого приложения, просто у браузера могут быть свои специфические "просьбы и требования" к ОС. Какую переменную вы хотите передать ОС? Какую переменную вы хотите получить от ОС? Вы можете узнать с помощью JS, например, разрешение экрана и передать его на сервер.
Вы что вырус собрались написать или задача трояна посадить на комп?

   
 
 автор: IgorT   (21.07.2007 в 18:14)   письмо автору
 
   для: sim5   (20.07.2007 в 16:19)
 

:)
Нет вырус тут непрычем. Просто надо написать програму (только для меня), которая будет выполнять некоторые действия, такые как формировать некоторую информацию (надо сделать под пхп) и отсылать ее на ком- порт, и конечно же получать и з него ответ.
Но проблема в том что я сперва думал что пхп действует с ком-портом и я смогу получать и отсылать информацию на ком-порт. Но тут - то выяснилось что работа с ком-портами в пхп есть, но только если етот ком-порт стоит на сервере :)
Но вы подсказали идейку - об работе на JS. Но интересует теперь меня нечто другое. Если написать программу под ОС, которая например ловила пременную из пхп - например $test, сама отсылала даные на ком-порт, а потом отсылала в виде другой пременной результат выполнения в пхп или другую веб-страницу. Возможно ли такое ?

P.S. Решил сделать так, как на пхп все просто можно нарисовать, сделать и т.д.

   
 
 автор: sim5   (21.07.2007 в 19:45)   письмо автору
 
   для: IgorT   (21.07.2007 в 18:14)
 

Да! Даже и не знаю что ответить :))
Если не секрет, какую такую "интересную" для Windows переменную вы хотите передать с сервера, чтобы ее еще и отослать на СОМ-порт...?
Ну во первых даже если вы и осуществите свою мечту на стороне клиента, то никакой РНР-переменной вы не получите на клиентской машине. РНР - это серверный язык! Отослать такую переменную на клиентскую машину вы сможете в виде текста, значения некого элемента формы, в виде JS...
Далее изучите WinAPI, ознакомтесь с ProcessMessage - поймете как взаимодействует ОС и приложения. Забросте на время РНР, садитесь изучать С++ или Delphi, например, а изучив, напишите свой плагин к браузеру или "системный перехватчик", или...

В общем - не морочте себе голову. Ваша HTML-страница взаимодействует не с ОС (все что требуется от нее, получает браузер), а с пользователем. Вот из этого и исходите. А то что касатся системы - это запретный плод!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования