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 — VARIANT trieda
$vVar = new VARIANT($var)
Popis
Jednoduchý kontainer na zabalenie premenných do VARIANT štruktúr.
Metódy
string VARIANT::VARIANT
([ mixed $value
[, int $type
[, int $codepage
]]] )
Konštruktor VARIANT triedy. Parametre:
- value
- počitatočná hodnota. Ak sa vynehá, vytvorí sa objekt VT_EMPTY.
- type
- určuje typ obsahu objektu VARIANT. Možné hodnoty sú 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 and VT_VARIANT. Tieto hodnoty sa navzájom vylučujú, ale dajú sa skombinovať s VT_BYREF na určenie hodnoty. Ak sa vynehá, použije sa typ value . Pozrite si msdn knižnicu pre dodatočné informácie.
- codepage
- určuje kódovú stránku, ktorá sa používa na konvertovanie php-reťazcov na unicode-reťazce a naopak. Možné hodnoty sú CP_ACP, CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP, CP_UTF7 a 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
?>
