php2exe

Статус
В этой теме нельзя размещать новые ответы.

baddan

Профессор
Регистрация
14 Мар 2008
Сообщения
354
Реакции
42
Случилось тут такая напасть заказчик попросил сделать скрипт который фильтрует CSV и выбрасывает его в другой файл сказано сделано, т.к. просил он под сайт было написано:

PHP:
<?php

$price=file("price.cvs");
$f1=fopen("tmp.csv","w+");
foreach($price as $s1){
 list($id,$kontro,$name,$pred,$ue,$kol,$pr,$tmp)=explode(';',trim($s1));
 if(isset($name) && $name!==""){
  if(strlen($name)>2 && strpos($name,'Наимено')===false){
   fputs($f1,"$name;$pred;$kol\r\n");
  }
 }
}
fclose($f1);

?>

вобщем тривиальная задача, но упертый заказчик оказался говорит нет возможности на сервер без кнца лазить сделай под винду. :eek: денги платят, дельфи не охото запускать, помнится гдето видел php2exe

кочаю значит:


там в примерах есть калькулятор правлю .rc (файл ресурсов)
calc.rc
PHP:
;This Resource Script was generated by WinAsm Studio.

#define IDD_DIALOG 101
#define IDC_START 1000

IDD_DIALOG DIALOGEX 0,0,120,50
CAPTION "CSV Filter"
FONT 8,"Tahoma"
STYLE 0x10cc0000
EXSTYLE 0x00000080
BEGIN
    CONTROL "Start",IDC_START,"Button",0x54000000,10,5,100,20,0x00000000
END

переделываю калькулятор calculater.php
PHP:
<?

/*******************************************************************************

 WINBINDER - A native Windows binding for PHP

 Copyright c 2004-2005 Hypervisual - see LICENSE.TXT for details
 Author: Rubem Pechansky (http://www.hypervisual.com/winbinder/contact.php)

 Code sample: Mini-calculator application

*******************************************************************************/

//------------------------------------------------------------ SYSTEM PARAMETERS

define("PATH_SCRIPT",   dirname(__FILE__) . "/");
define("PATH_DATA",     PATH_SCRIPT);
define("PATH_INC",      PATH_SCRIPT . "../include/");
define("PATH_RES",      PATH_SCRIPT . "../resources/");

//----------------------------------------------------------------- DEPENDENCIES

include "include/winbinder.php";

//-------------------------------------------------------------------- CONSTANTS

define("APPNAME",   "CSV Filter");    // Application name
define("BLANK",     "blank");

//----------------------------------------------------------------- DEPENDENCIES

//------------------------------------------------------------- GLOBAL VARIABLES

/*
$newnumber = BLANK;
$memory = 0;
$display = "";
$number1 = "";
$number2 = "";
$opvalue = "";
}*/

//-------------------------------------------------------------- EXECUTABLE CODE

// Create main window from RC template

/*$f = fopen("debug.log","w");
$data =  parse_rc(file_get_contents("calc.rc"), '$mainwin', null, 'PopupWindow');
fwrite($f,$data);
fclose($f);*/
eval(parse_rc(file_get_contents("calc.rc"), '$mainwin', null, 'PopupWindow'));

// Set main window handler and enter application loop

wb_set_handler($mainwin, "process_main");
wb_main_loop();

//-------------------------------------------------------------------- FUNCTIONS

// TODO: Calculator is not working properly
// TODO: Use keyboard to enter keys

// Ported and adapted from original JavaScript calculator by Steve Dulaney
// http://www.hmhd.com/steve

/* Process main window commands */

function process_main($window, $id)
{
    global $memory, $display;

    switch($id) {

        case IDCLOSE:           // Predefined constant
            wb_destroy_window($window);
            break;

        case IDC_DISPLAY:       // Does not process edit controls
            break;

        default:                // Process buttons
            $ctrl = wb_get_control($window, $id);
            if(wb_get_class($ctrl) != PushButton)
                break;
            $caption = trim(wb_get_text($ctrl));

            switch($caption) {

                // Numbers and decimal point

                case "Start":
                    getfile("Ok");                      break;

            } // switch($caption)
            break;
    } // switch($id)
}

function getfile($s1)
{
 global $mainwin;

 $path = getcwd();
 $filter = array(array('CSV Files', '*.csv'));

if($fn = wb_sys_dlg_open(NULL, 'Open file', $filter, $path))
{
   $price=file($fn);

   $f1=fopen("tmp.csv","w+");

   foreach($price as $s1){
    list($id,$kontro,$name,$pred,$ue,$kol,$pr,$tmp)=explode(';',trim($s1));
    if(isset($name) && $name!==""){
     if(strlen($name)>2 && strpos($name,'Наимено')===false){
      fputs($f1,"$name;$pred;$kol\r\n");
     }
    }
   }
   fclose($f1);

   wb_message_box(NULL, "Обработан: $fn \nВыгружен в: $path\\tmp.csv");

} 

}

?>

вот такая вот байда может кому пригодится.

 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху