Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись CD при помощи PHP

256
04 декабря 2006 года
foxweb
1.0K / / 27.07.2005
понимаю, может и бред, но на часах 2:10 и я хотел бы узнать, возможно ли на практике реализовать запись CD средствами PHP?

конкретная задача: запись MP3 дисков для моего любимого плеера, давая на вход M3U файл с путями. иногда составляю хорошую подборку, но файлы приходится записывать по отдельности из разных мест.

если, сильно захотеть, я конечно реализую.

хотелось бы узнать ваши мнения и идеи.
известно, что PHP хорошо дружит с CLI (командной строкой), отсюда...
355
04 декабря 2006 года
<SCORP>
786 / / 21.10.2006
ну, сам же ты не будешь создавать образы и прожигать их на диск. т.е. тебе надо какая-то резалка, работающая из командной строки. в никсах -- burncd. в винде таких вещей не встречал и не искал.
256
04 декабря 2006 года
foxweb
1.0K / / 27.07.2005
да. это самый простой вариант. а PHP здесь в роли BAT-процессора.
347
04 декабря 2006 года
Maniak
319 / / 05.11.2005
круто... никогда не задумывался о таких извращениях :)
16K
05 декабря 2006 года
windoctor
19 / / 05.07.2006
Цитата:
круто... никогда не задумывался о таких извращениях


Ты прав это действительно извращение

13
05 декабря 2006 года
RussianSpy
3.0K / / 04.07.2006
Нет никакого извращения. Обычное использование сторонних библиотек, что встречается в РНР на каждом шагу: GD, CURL, PEAR и т.д.
РНР просто как интерфейс к бибилиотеке.

Кстати для тех кто в танке - никто не говорит что на РНР можно писать только гостевые книги и сайты знакомств. Это вполне полноценный язык, на котором можно написать вполне локальные приложения. Писалку СД/ДВД в частности.
11K
05 декабря 2006 года
BKnight
4 / / 02.05.2005
Нора, вроде, предоставляет какой-то API для записи компактов в одной из своих DLL... Можешь попробовать это заюзать! )
256
05 декабря 2006 года
foxweb
1.0K / / 27.07.2005
2 RussianSpy +10!!!
355
07 декабря 2006 года
<SCORP>
786 / / 21.10.2006
да уж.... я когда на заре програмистской молодости увидел книжку "написание оконных windwos приложений на php" был слегка в шоке. потом тока догнал, что ничего в этом ни страшного, ни сверъестественного нету
256
07 декабря 2006 года
foxweb
1.0K / / 27.07.2005
[QUOTE=<SCORP>;158444]да уж.... я когда на заре програмистской молодости увидел книжку "написание оконных windwos приложений на php" был слегка в шоке. потом тока догнал, что ничего в этом ни страшного, ни сверъестественного нету[/QUOTE]

Думаю, если бы PHP был изначально GUI, то те кого удивила тема топика совсем бы не удивились. Вот она - сила графического интерфейса!
Между тем на PHP это сделать так же легко, как скажем на Delphi.
244
07 декабря 2006 года
UAS
2.0K / / 19.07.2006
Цитата:
да уж.... я когда на заре програмистской молодости увидел книжку "написание оконных windwos приложений на php" был слегка в шоке. потом тока догнал, что ничего в этом ни страшного, ни сверъестественного нету


Можетен ачинающему привести один примерчик маленький, если не сложно??

256
08 декабря 2006 года
foxweb
1.0K / / 27.07.2005
не совсем winapi, но php-пел (нужен PHP GTK)
делал для баловства. преобразует IP в доменное имя.

Код:
<?php
/**
*   new1
*   0.01a
*
*   by
*   fox
*   f_mulder@list.ru
*   http://foxweb.net.ru
*
*   The sample PHP-GTK Application is just a small test
*   how easy it is to create desktop-php-applications with
*   the php-gtk.
*   It has no more function, just a small test!
*  
*   So don't mind inspecting the code!
*  
*   And now it is time to create your own app...
*
*   Changelog:
*   0.01a
*   - first version, so no changes ;)
*/



//Load GTK if not happened yet
if( !class_exists("gtk")) {
    dl( "php_gtk." . ( strstr( PHP_OS, "WIN") ? "dll" : "so"));
}

require_once( "GTK_FileDialog.inc");
require_once( "GTK_MessageBox.inc");
require_once( "xml.inc");


$GLOBALS["new1"] = new window1();
$GLOBALS["new1"]->run();


/**
*   @author fox f_mulder@list.ru
*   @version 0.01a
*
*/

class window1
{
    /**
    *   The main dialog object
    *   @var GtkWindow/GtkDialog
    */

    var $window1;
    /**
    *   Array with all loaded GTK widgets for easy access
    *   @var array
    */

    var $arWidgets;
   
    var $strPathSeparator   = "/";
    /**
    *   Title of the dialog window
    *   Use this variable as MessageBox title
    */

    var $strTitle           = "window1";

   
    /**
    *   Constructor
    *   This function is called when you create an object of window1
    */

    function window1() {
        $this->InitDialog();
    }//function window1()


    /**
    *   let the program enter the gtk input loop - start the user interface
    */

    function run()
    {
        GTK::main();
    }//function run()

    /**
    *   Main function
    *   Loads the user interface, shows the dialog and
    *   runs the main loop
    */

    function InitDialog()
    {

        $this->BuildDialog();
        //Add here your extra initialization
        //like loading data/settings

       
        $this->window1->show();
    }//function InitDialog()


    /**
    *   dialog creation
    *   This one loads the widgets and connnects functions
    */

    function BuildDialog()
    {
        $strStyle = "Aqua_mini";
        if( isset( $strStyle)) {
            GTK::rc_parse( GTK::rc_get_theme_dir() . "/" . $strStyle . "/gtk/gtkrc");
        }
        strstr( PHP_OS, "WIN") ? $this->strPathSeparator = "\\" : $this->strPathSeparator = "/";

        //use libglade for user interface loading
        //Main window
        $this->glWindow1        = &new GladeXML( dirname( __FILE__) . $this->strPathSeparator . "new1.xml");

        $this->window1      = $this->glWindow1->get_widget( "window1");
        $this->window1      ->set_title( $this->strTitle);
        //$this->window1        ->set_usize( 600, 450);
        $this->window1      ->connect(  "destroy"       , array( &$this, "OnDestroy"));
        $this->window1      ->connect(  "delete-event"  , array( &$this, "OnDelete"));


        $this->arWidgets["btnQuit"] = $this->glWindow1->get_widget( "btnQuit");
        $this->arWidgets["button2"] = $this->glWindow1->get_widget( "button2");
        $this->arWidgets["text1"]   = $this->glWindow1->get_widget( "text1");
        $this->arWidgets["entry1"]  = $this->glWindow1->get_widget( "entry1");
       


        $this->arWidgets["btnQuit"] ->connect(  "clicked"   , array( &$this, "OnClickedButtonQuit"));
        $this->arWidgets["button2"] ->connect(  "clicked"   , array( &$this, "OnClickedButton2"));
       

    }//function BuildDialog()


    /**
    *   If the dialog is being destroyed, the loop should end
    *   Place the SaveSettings calls and so here
    */

    function OnDestroy()
    {
        Gtk::main_quit();
    }//function OnDestroy()

    /**
    *   Call this function if you want to quit by hand
    */

    function OnQuit()
    {
        if( true) {
            $this->window1->destroy();
        }
    }//function OnQuit()

    /**
    *   This function is called if you click the "x" in the upper right of the window
    *   The question is: Do you want to keep the window?
    *   if you return false, the app is closed
    *   if you return true, the app keeps on working
    */

    function OnDelete()
    {
        if( true) {
            return false;
        } else {
            return true;
        }
    }//function OnDelete()


    function OnClickedButtonQuit( $objPara1)
    {
        exit;
    }//function OnClickedButtonQuit( $objPara1)
   
    function OnClickedButton2( $objPara1)
    {
        $str = $this->arWidgets["entry1"]->get_text();
        $str = gethostbyaddr( $str );
        $this->arWidgets["text1"]->insert(null, null, null, "$str\n" );
    }




}//class window1



?>
355
08 декабря 2006 года
&lt;SCORP&gt;
786 / / 21.10.2006
Цитата: foxweb
Думаю, если бы PHP был изначально GUI, то те кого удивила тема топика совсем бы не удивились. Вот она - сила графического интерфейса!



дайте консооооооль!!!

2
08 декабря 2006 года
squirL
5.6K / / 13.08.2003
изврат, ИМХО. только для игрушек, а не для серьезного дела :) я и на shell писал приложения с графическим интерфейсом. правда не Х, а псевдографика.
256
10 декабря 2006 года
foxweb
1.0K / / 27.07.2005
возвращаясь к топику.

подумал заюзать php_w32api и воспользоваться стандартными средствами записи дисков Windows XP, правда в WinAPI я не то чтобы не силён, а вообще никак ). просто как один из вариантов.
10
10 декабря 2006 года
Freeman
3.2K / / 06.03.2004
Цитата: foxweb
возвращаясь к топику.


По-моему, ты параноик. Это в качестве диагноза.

Если стоит задача записи дисков из командной строки, найди порты под Win32 юниксовых mkisofs и cdrtools/cdrdao, например, тут. Сама программа, кстати, весьма неплоха, прекрасно держит стандарты, в отличие от Nero. Пишу ею, Nero уже много лет назад отправил в печь.

Если же сыр-бор из-за возможности составления - ищущий да обрящет. Не верю, что подобной проблемой уже кто-то не озаботился и не решил.

Запись дисков - штука неоднозначная, и не факт, что будешь пользоваться собственным решением, даже если и дойдет до пригодного состояния. ИМХО, не та вещь, на которой учатся программированию, да ещё с извращениями.

256
10 декабря 2006 года
foxweb
1.0K / / 27.07.2005
ну чё сразу параноик? просто хотелось услышать мнения, кто как себе это предствляет. неужели кто-то думает, что я кинусь прям так сразу винапи юзать ))) да ни за какие сокровища мира!!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог