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!
VARIANT
(No version information available, might be only in CVS)
VARIANT — classe VARIANT
$vVar = new VARIANT($var)
Descrizione
Un semplice contenitore per includere le variabili in strutture VARIANT.
Metodi
costruttore della classe VARIANT. Parametri:
- valore
- valore iniziale. se omesso viene creato un oggetto VT_EMPTY.
- tipo
- specifica il tipo di contenuto dell'oggetto VARIANT. I valori possibili sono VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_R8, VT_INT, VT_UINT, VT_BOOL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DECIMAL, VT_UNKNOWN, VT_DISPATCH e VT_VARIANT. Questi valori sono mutuallmente esclusivi, ma possono essere combinati con VT_BYREF per specificare che è un valore. Se omesso, viene usato il tipo di valore . Consultare la libreria MSDN per ulteriori informazioni.
- codepage
- specifica la codepage che è usata per convertire le stringhe PHP in stringhe unicode e viceversa. I valori possibili sono CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 e CP_UTF8.
VARIANT
darren at dcook dot org
17-Jul-2007 05:59
17-Jul-2007 05:59
mark dot pearson at capita dot co dot uk
29-Oct-2003 11:51
29-Oct-2003 11:51
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!
richard dot quadling at carval dot co dot uk
26-Feb-2003 05:50
26-Feb-2003 05:50
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.
alain at samoun dot com
02-Sep-2001 01:37
02-Sep-2001 01:37
<?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
?>
