|
VARIANT
VARIANT class
()
Example 408. Variant example, PHP 4.x style<?php Example 409. Variant example, PHP 5 style<?php Code Examples / Notes » class.variantrichard dot quadling
With thanks to Harald Radi and Wez Furlong. Some VBA functions have optional parameters. Sometimes the parameters you want to pass are not consecutive. e.g. GoTo What:=wdGoToBookmark, Name="BookMarkName" GoTo(wdGoToBookmark,,,"BookMarkName) In PHP, the "blank" parameters need to be empty. Which is ... <?php // Some servers may have an auto timeout, so take as long as you want. set_time_limit(0); // Show all errors, warnings and notices whilst developing. error_reporting(E_ALL); // Used as a placeholder in certain COM functions where no parameter is required. $empty = new VARIANT(); // Load the appropriate type library. com_load_typelib('Word.Application'); // Create an object to use. $word = new COM('word.application') or die('Unable to load Word'); print "Loaded Word, version {$word->Version}\n"; // Open a new document with bookmarks of YourName and YourAge. $word->Documents->Open('C:/Unfilled.DOC'); // Fill in the information from the form. $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourName'); // Note use of wdGoToBookmark, from the typelibrary and the use of $empty. $word->Selection->TypeText($_GET['YourName']); $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'YourAge'); $word->Selection->TypeText($_GET['YourAge']); // Save it, close word and finish. $word->Documents[1]->SaveAs("C:/{$_GET['YourName']}.doc"); $word->Quit(); $word->Release(); $word = null; print "Word closed.\n"; ?> The example document is ... Hello [Bookmark of YourName], you are [Bookmark of YourAge] years old. and it would be called ... word.php?YourName=Richard%20Quadling&YourAge=35 Regards, Richard. mark dot pearson
Running PHP 4.3.2 on Windows 2000 I had to use the following expression to create an empty Variant: <?php $empty = new Variant(null); print $empty->type // ==> 1 ?> NOT <?php $empty = new Variant(); print $empty->type // ==> 0 ?> The two expressions return different Variant type values! darren
If you are frustrated that print_r($obj) (where $obj is something returned from a call to a function on a COM object) does not return anything helpful, and that variant_get_type($obj) just returns a number, the function you are actually after is: com_print_typeinfo($obj); It lists all functions, variables, their types in a human-readable (well, programmer-readable) format. Lovely! alain
<?php # I think that we need some examples of this thing: # Lets define a real variant: $varREAL= new Variant("9.34 is a real number",VT_R8); print "Value:". $varREAL->value; # Will print 9.34 # Now an integer $varINT= new Variant("9.34 Printed as an integer",VT_INT); print "Value:". $varINT->value; # Will print 9 # Now a string $varSTR= new Variant("9.34 Printed as a string",VT_BSTR); print "Value:". $varSTR->value; # Will 9.34 Printed as a string ?> |
Change LanguageCOM DOTNET VARIANT com_addref com_create_guid com_event_sink com_get_active_object com_get com_invoke com_isenum com_load_typelib com_load com_message_pump com_print_typeinfo com_propget com_propput com_propset com_release com_set variant_abs variant_add variant_and variant_cast variant_cat variant_cmp variant_date_from_timestamp variant_date_to_timestamp variant_div variant_eqv variant_fix variant_get_type variant_idiv variant_imp variant_int variant_mod variant_mul variant_neg variant_not variant_or variant_pow variant_round variant_set_type variant_set variant_sub variant_xor |