Looking for a sample to execute PHP using Execute Program

thomas_wiedmannthomas_wiedmann Member Posts: 60 Guru
edited December 2018 in Help

I'm looking for a sample to execute PHP (Skripts) using "Execute Program". Current I get some error. Rapidminer can't find php. Please look at images.

 

Thanks,

Thomas

 

 

Answers

  • thomas_wiedmannthomas_wiedmann Member Posts: 60 Guru

    some add:

     

    command: cmd /c start  "D:\Wiedmann\Tools\php-5.6.13-Win32-VC11-x86"  php -h

    sems to be a little bit better. Is this the right way to do so?

     

  • thomas_wiedmannthomas_wiedmann Member Posts: 60 Guru

    may this

     

    cmd /c start  "php -f rapidminer.php"

    but my php skript did'nt start. Maybe I get empty CMD console, but php did'nt run the script.

     

    Seems difficult. Any comment?

  • jczogallajczogalla Employee, Member Posts: 144 RM Engineering

    Hi Thomas,

     

    from my experience it is like this: If you can execute that script in your normal Windows cmd, then it should also be able to run from within RapidMiner.

    Can you tell a little bit more of your setup? Which Windows version are you using? Is the path you posted your project or your php installation directory?

    I would think that something like

    C:\<php install path>\php <project path>\rapidminer.php

    should work.

     

    Cheers

    Jan

  • thomas_wiedmannthomas_wiedmann Member Posts: 60 Guru

    Thanks Jan. Thats true, but my problem is, that PHP don't find the PIPE Data from "Write CSV".

     

    1) Model Looks like attached image..model.JPG

     

     

    2) parameter from Execute Program looks like..

    execute.JPG

     

    command: cmd /c  start D:\Wiedmann\Tools\php-5.6.13-Win32-VC11-x86\rapidminer-start-php.bat

     

    working directory: D:\Wiedmann\Tools\php-5.6.13-Win32-VC11-x86\

     

    3) rapidminer-start-php.bat looks like

    rem --- rapidminer-start-php.bat ---
    d:
    cd d:\wiedmann\tools\php-5.6.13-Win32-VC11-x86
    php rapidminer.php

    4) rapidminer.php looks like..

    <?php
    echo 'start php';

    // $data = stream_get_contents(STDIN);
    $data = array();

    // https://stackoverflow.com/questions/5891888/piping-data-into-command-line-php
    // TEST $fp = readfile("php://stdin");

    echo 'start php-2';
    while($f = fgets(STDIN)){
    echo "line: $f";
    $data[] = $f;
    }

    echo 'start php-3';
    var_dump($data);

    sort($data);
    echo 'start php-4';

    if (empty($data)) {
    $data = array ( 1, 2, 3 );
    }
    echo 'start php-5';

    fwrite(STDOUT, implode(';',$data));

    echo 'start php-6';

    ?>

     

    Problem:

    PHP get no piped information. PHP ist readin on STDIN and wait forever. My breakpoint after shows me this Box

     

    box.jpg

     

    PHP script is still waiting on echo "php-2" forever. PHP waits on console INPUT.

     

    Big Question: Why "Write CSV" Data are not piped to "Execute Program" ?

     

     

    EDIT

    This for example work well and PHP get piped data from dir.

    D:\Wiedmann\Tools\php-5.6.13-Win32-VC11-x86>dir | php rapidminer.php

     

     

     

     

     

     

     

Sign In or Register to comment.