Jump to content

Php Wraper


piccaso
 Share

Recommended Posts

Hi!

I wrote a litte function that enables to use php in autoit scripts.

func php_eval($code)
  FileInstall("php.exe",@ScriptDir&"\php.exe",0)
  FileInstall("php.ini",@ScriptDir&"\php.ini",0)
  FileInstall("php4ts.dll",@ScriptDir&"\php4ts.dll",0)
  if FileExists(@scriptdir&"\temp") == 0 Then RunWait(@ComSpec & " /c " & 'mkdir ' & filegetshortname(@scriptdir&"\temp"), "", @SW_HIDE)
  do
   $temp_in = filegetshortname(@scriptdir&"\temp\"&Int(Random(10000000,99999999))&".php")
     until FileExists($temp_in) == 0
  do
   $temp_out = filegetshortname(@scriptdir&"\temp\"&Int(Random(10000000,99999999))&".txt")
     until FileExists($temp_in) == 0
  $fh = FileOpen($temp_in,2)
  fileWrite($fh,$code)
  FileClose($fh)
  RunWait(@ComSpec & " /c " & filegetshortname(@scriptdir&"\php.exe") & " -c " & filegetshortname(@scriptdir&"\php.ini") & " -f " & $temp_in & " >" & $temp_out, "", @SW_HIDE)
  $rval = fileread($temp_out,filegetsize($temp_out))
  fileDelete($temp_in)
  fileDelete($temp_out)
  return $rval
endfunc

msgbox(0,"phpWrap",php_eval("<? echo phpversion(); ?>"))
msgbox(0,"phpWrap",php_eval("<? i Am a parse error; ?>"))

i thought i'll put it up here to inspire you :D

the 2 last lines are just examples

and please tell me, does this

fileread($temp_out,filegetsize($temp_out))

realy read out the whole file contents?

it seems to work but i'm not sure about it.

of course you need php.exe,php.ini and php4ts.dll in your @ScriptDir when running/compiling the script but (as you can probably see) the exe will run without

you have to make some changes in your php.ini

i would al leas recommend 'html_errors=off'

i'll put the whole package up somewhere if anybody cares (just let me know)

Edited by piccaso
CoProc Multi Process Helper libraryTrashBin.nfshost.com store your AutoIt related files here!AutoIt User Map
Link to comment
Share on other sites

Hi!

and please tell me, does this

fileread($temp_out,filegetsize($temp_out))

realy read out the whole file contents?

it seems to work but i'm not sure about it.

What makes you uncertain about it?

Gene

[font="Verdana"]Thanks for the response.Gene[/font]Yes, I know the punctuation is not right...

Link to comment
Share on other sites

The Helpfile Example looks Different :D

; Read in 1 character at a time until the EOF is reached
While 1
    $chars = FileRead($file, 1)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Char read:", $chars)
Wend

And i'm not sure that one 'char' is one 'byte' ...

CoProc Multi Process Helper libraryTrashBin.nfshost.com store your AutoIt related files here!AutoIt User Map
Link to comment
Share on other sites

The Helpfile Example looks Different :D

; Read in 1 character at a time until the EOF is reached
While 1
    $chars = FileRead($file, 1)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Char read:", $chars)
Wend

And i'm not sure that one 'char' is one 'byte' ...

This is an example. In fact you can use this command/function to read any portion other than 0% into a variable. If you use the FileSize() command/function to specify the number of bytes/characters to be read in, it reads 100% of the bytes/characters into the variable.

It seems to me that the FileRead() command/function is useful in 4 scenarios:

1- to read the the "header" of a file (to determine field and record lengths)

2- when the fields and records in a file are of fixed length(s) and there are no delimiters

3- when the length of a record is specified in the header of the record and there are no delimiters

4- to grab the entire file using the FileSize command/function

Gene

PS. Having gone out on that limb, I will be disappointed if 2 or 3 additional uses aren't pointed out by others.

Edited by Gene

[font="Verdana"]Thanks for the response.Gene[/font]Yes, I know the punctuation is not right...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...