Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

phpembed: moving current source under trunk

git-svn-id: svn+ssh://tubbs/svnroot/projects/phpembed/trunk@33531 2c7ba8d8-a2f7-0310-a573-de162e16dcc7
  • Loading branch information...
commit c92f5243fd60239a55a89d9951e47115933454ff 1 parent b9a0a21
shire authored
Showing with 17,209 additions and 0 deletions.
  1. +27 −0 LICENSE
  2. +51 −0 SConstruct
  3. BIN  docs/phpembed.pdf
  4. +1,418 −0 docs/phpembed.tex
  5. +4 −0 docs/www/WARNINGS
  6. +67 −0 docs/www/footnode.html
  7. BIN  docs/www/image.png
  8. +272 −0 docs/www/index.html
  9. +14 −0 docs/www/internals.pl
  10. +29 −0 docs/www/labels.pl
  11. +266 −0 docs/www/node1.html
  12. +163 −0 docs/www/node10.html
  13. +209 −0 docs/www/node11.html
  14. +71 −0 docs/www/node12.html
  15. +84 −0 docs/www/node13.html
  16. +70 −0 docs/www/node14.html
  17. +73 −0 docs/www/node15.html
  18. +70 −0 docs/www/node16.html
  19. +69 −0 docs/www/node17.html
  20. +226 −0 docs/www/node18.html
  21. +87 −0 docs/www/node19.html
  22. +105 −0 docs/www/node2.html
  23. +84 −0 docs/www/node20.html
  24. +111 −0 docs/www/node21.html
  25. +84 −0 docs/www/node22.html
  26. +111 −0 docs/www/node23.html
  27. +84 −0 docs/www/node24.html
  28. +111 −0 docs/www/node25.html
  29. +111 −0 docs/www/node26.html
  30. +84 −0 docs/www/node27.html
  31. +111 −0 docs/www/node28.html
  32. +84 −0 docs/www/node29.html
  33. +106 −0 docs/www/node3.html
  34. +111 −0 docs/www/node30.html
  35. +84 −0 docs/www/node31.html
  36. +96 −0 docs/www/node32.html
  37. +83 −0 docs/www/node33.html
  38. +80 −0 docs/www/node34.html
  39. +80 −0 docs/www/node35.html
  40. +80 −0 docs/www/node36.html
  41. +83 −0 docs/www/node37.html
  42. +83 −0 docs/www/node38.html
  43. +84 −0 docs/www/node39.html
  44. +72 −0 docs/www/node4.html
  45. +111 −0 docs/www/node40.html
  46. +111 −0 docs/www/node41.html
  47. +83 −0 docs/www/node42.html
  48. +84 −0 docs/www/node43.html
  49. +80 −0 docs/www/node44.html
  50. +83 −0 docs/www/node45.html
  51. +83 −0 docs/www/node46.html
  52. +83 −0 docs/www/node47.html
  53. +83 −0 docs/www/node48.html
  54. +83 −0 docs/www/node49.html
  55. +72 −0 docs/www/node5.html
  56. +83 −0 docs/www/node50.html
  57. +83 −0 docs/www/node51.html
  58. +83 −0 docs/www/node52.html
  59. +83 −0 docs/www/node53.html
  60. +80 −0 docs/www/node54.html
  61. +80 −0 docs/www/node55.html
  62. +80 −0 docs/www/node56.html
  63. +80 −0 docs/www/node57.html
  64. +80 −0 docs/www/node58.html
  65. +82 −0 docs/www/node59.html
  66. +91 −0 docs/www/node6.html
  67. +87 −0 docs/www/node60.html
  68. +84 −0 docs/www/node61.html
  69. +111 −0 docs/www/node62.html
  70. +111 −0 docs/www/node63.html
  71. +111 −0 docs/www/node64.html
  72. +111 −0 docs/www/node65.html
  73. +109 −0 docs/www/node66.html
  74. +111 −0 docs/www/node67.html
  75. +111 −0 docs/www/node68.html
  76. +111 −0 docs/www/node69.html
  77. +157 −0 docs/www/node7.html
  78. +111 −0 docs/www/node70.html
  79. +111 −0 docs/www/node71.html
  80. +111 −0 docs/www/node72.html
  81. +111 −0 docs/www/node73.html
  82. +111 −0 docs/www/node74.html
  83. +111 −0 docs/www/node75.html
  84. +111 −0 docs/www/node76.html
  85. +111 −0 docs/www/node77.html
  86. +111 −0 docs/www/node78.html
  87. +111 −0 docs/www/node79.html
  88. +111 −0 docs/www/node8.html
  89. +111 −0 docs/www/node80.html
  90. +111 −0 docs/www/node81.html
  91. +111 −0 docs/www/node82.html
  92. +111 −0 docs/www/node83.html
  93. +111 −0 docs/www/node84.html
  94. +111 −0 docs/www/node85.html
  95. +111 −0 docs/www/node86.html
  96. +111 −0 docs/www/node87.html
  97. +111 −0 docs/www/node88.html
  98. +111 −0 docs/www/node89.html
  99. +143 −0 docs/www/node9.html
  100. +111 −0 docs/www/node90.html
  101. +111 −0 docs/www/node91.html
  102. +105 −0 docs/www/node92.html
  103. +72 −0 docs/www/node93.html
  104. +125 −0 docs/www/node94.html
  105. +73 −0 docs/www/node95.html
  106. +78 −0 docs/www/node96.html
  107. +30 −0 docs/www/phpembed.css
  108. +272 −0 docs/www/phpembed.html
  109. +118 −0 examples/example.cpp
  110. +28 −0 examples/example.php
  111. +591 −0 examples/test.cpp
  112. +129 −0 examples/test.php
  113. +100 −0 examples/usage.cpp
  114. +12 −0 examples/usage.php
  115. +579 −0 src/php_arr.cpp
  116. +179 −0 src/php_arr.h
  117. +901 −0 src/php_cxx.cpp
  118. +133 −0 src/php_cxx.h
  119. +1,914 −0 src/php_stl.cpp
  120. +90 −0 src/php_stl.h
  121. +251 −0 src/php_tok.cpp
  122. +132 −0 src/php_tok.h
  123. +134 −0 src/php_tok_consts.h
View
27 LICENSE
@@ -0,0 +1,27 @@
+THE PHPEMBED LICENSE AGREEMENT
+
+Copyright (c) 2007, Andrew Bosworth, Brian Shire, Facebook, inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+* Neither the name of Facebook, inc. nor the names of its contributors may
+be used to endorse or promote products derived from this software without
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
View
51 SConstruct
@@ -0,0 +1,51 @@
+#
+# DIRECTORY VARIABLES
+# to keep code maximally portable, keep ALL directory references here
+#
+
+src = '#src/'
+examples = '#examples/'
+phpd = '/usr/local/php/include/php/'
+phpdirs = [phpd, phpd+'Zend/', phpd+'TSRM/', phpd+'main/', phpd+'sapi/embed/']
+
+
+#
+# DEFINE BUILD ENVIRONMENT
+# universal setting used for all programs for compilation
+#
+
+env = Environment(CPPFLAGS='-Wall -g',
+ CPPPATH=phpdirs + [src],
+ LINKFLAGS='`php-config --includes` `php-config --ldflags` `php-config --libs`')
+
+libtarget = "phpembed"
+libsources = [src + 'php_cxx.cpp', src + 'php_arr.cpp',
+ src + 'php_stl.cpp', src + 'php_tok.cpp']
+env.StaticLibrary(target = libtarget, source = libsources)
+
+
+#
+# BUILD EXECUTABLES
+# go to all children and execute their SConscripts
+#
+
+test = env.Program(target = 'test',
+ source = [examples + 'test.cpp',
+ 'libphpembed.a',
+ '/usr/local/php/lib/libphp5.a'],
+ LIBS = '',
+ LIBPATH = '')
+
+example = env.Program(target = 'example',
+ source = [examples + 'example.cpp',
+ 'libphpembed.a',
+ '/usr/local/php/lib/libphp5.a'],
+ LIBS = '',
+ LIBPATH = '')
+
+usage = env.Program(target = 'usage',
+ source = [examples + 'usage.cpp',
+ 'libphpembed.a',
+ '/usr/local/php/lib/libphp5.a'],
+ LIBS = '',
+ LIBPATH = '')
View
BIN  docs/phpembed.pdf
Binary file not shown
View
1,418 docs/phpembed.tex
1,418 additions, 0 deletions not shown
View
4 docs/www/WARNINGS
@@ -0,0 +1,4 @@
+No implementation found for style `ifpdf'
+No implementation found for style `hyperref'
+
+Substitution of arg to newlabelxx delayed.
View
67 docs/www/footnode.html
@@ -0,0 +1,67 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Footnotes</TITLE>
+<META NAME="description" CONTENT="Footnotes">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="previous" HREF="node95.html">
+<LINK REL="up" HREF="phpembed.html">
+</HEAD>
+
+<BODY >
+
+<DL>
+<DT><A NAME="foot668">... case.</A><A
+ HREF="node3.html#tex2html4"><SUP>1</SUP></A></DT>
+<DD><A NAME="tex2html5"
+ HREF="http://www.research.att.com/~bs/bs_faq2.html">Bjarne Stroustrup would approve: http://www.research.att.com/~bs/bs_faq2.html</A>
+
+<PRE>.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+.
+</PRE>
+</DD>
+</DL>
+</BODY>
+</HTML>
View
BIN  docs/www/image.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
272 docs/www/index.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>PHPEmbed</TITLE>
+<META NAME="description" CONTENT="PHPEmbed">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node1.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html16"
+ HREF="node1.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up_g.png">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev_g.png">
+<A NAME="tex2html14"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html17"
+ HREF="node1.html">Contents</A>
+ &nbsp; <B> <A NAME="tex2html15"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<P>
+<H1 ALIGN="CENTER">PHPEmbed</H1>
+<DIV>
+
+<P ALIGN="CENTER"><STRONG><A NAME="tex2html1"
+ HREF="http://www.facebook.com/p/Andrew_Boz_Bosworth/1681">Andrew Bosworth</A>
+ , <A NAME="tex2html3"
+ HREF="http://www.facebook.com">Facebook, inc</A></STRONG></P>
+</DIV>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"></A>
+
+<UL>
+<LI><A NAME="tex2html18"
+ HREF="node1.html">Contents</A>
+<LI><A NAME="tex2html19"
+ HREF="node2.html">Motivation</A>
+<LI><A NAME="tex2html20"
+ HREF="node3.html">Design</A>
+<LI><A NAME="tex2html21"
+ HREF="node4.html">Download</A>
+<LI><A NAME="tex2html22"
+ HREF="node5.html">Installation</A>
+<LI><A NAME="tex2html23"
+ HREF="node6.html">Usage</A>
+<UL>
+<LI><A NAME="tex2html24"
+ HREF="node7.html">Initializing</A>
+<LI><A NAME="tex2html25"
+ HREF="node8.html">Calling functions</A>
+<LI><A NAME="tex2html26"
+ HREF="node9.html">Passing Arguments</A>
+<LI><A NAME="tex2html27"
+ HREF="node10.html">Creating PHP Arrays</A>
+<LI><A NAME="tex2html28"
+ HREF="node11.html">Navigating PHP Arrays</A>
+<LI><A NAME="tex2html29"
+ HREF="node12.html">Additional Examples</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html30"
+ HREF="node13.html">Frequently Asked Questions</A>
+<UL>
+<LI><A NAME="tex2html31"
+ HREF="node14.html"><I>Why not use macros instead of repeating so much code?</I></A>
+<LI><A NAME="tex2html32"
+ HREF="node15.html"><I>Why do I keep running out of memory?</I></A>
+<LI><A NAME="tex2html33"
+ HREF="node16.html"><I>Can I have multiple instances of PHPEmbed in one program?</I></A>
+<LI><A NAME="tex2html34"
+ HREF="node17.html"><I>Will this library work on my platform?</I></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html35"
+ HREF="node18.html">Function Reference</A>
+<UL>
+<LI><A NAME="tex2html36"
+ HREF="node19.html"><TT>php</TT></A>
+<LI><A NAME="tex2html37"
+ HREF="node20.html"><TT>php::call_bool</TT></A>
+<LI><A NAME="tex2html38"
+ HREF="node21.html"><TT>php::call_bool_arr</TT></A>
+<LI><A NAME="tex2html39"
+ HREF="node22.html"><TT>php::call_c_string</TT></A>
+<LI><A NAME="tex2html40"
+ HREF="node23.html"><TT>php::call_c_string_arr</TT></A>
+<LI><A NAME="tex2html41"
+ HREF="node24.html"><TT>php::call_double</TT></A>
+<LI><A NAME="tex2html42"
+ HREF="node25.html"><TT>php::call_double_arr</TT></A>
+<LI><A NAME="tex2html43"
+ HREF="node26.html"><TT>php::call_int_array</TT></A>
+<LI><A NAME="tex2html44"
+ HREF="node27.html"><TT>php::call_long</TT></A>
+<LI><A NAME="tex2html45"
+ HREF="node28.html"><TT>php::call_long_array</TT></A>
+<LI><A NAME="tex2html46"
+ HREF="node29.html"><TT>php::call_php_array</TT></A>
+<LI><A NAME="tex2html47"
+ HREF="node30.html"><TT>php::call_uint_array</TT></A>
+<LI><A NAME="tex2html48"
+ HREF="node31.html"><TT>php::call_void</TT></A>
+<LI><A NAME="tex2html49"
+ HREF="node32.html"><TT>php::eval_string</TT></A>
+<LI><A NAME="tex2html50"
+ HREF="node33.html"><TT>php::load</TT></A>
+<LI><A NAME="tex2html51"
+ HREF="node34.html"><TT>php::set_error_function</TT></A>
+<LI><A NAME="tex2html52"
+ HREF="node35.html"><TT>php::set_message_function</TT></A>
+<LI><A NAME="tex2html53"
+ HREF="node36.html"><TT>php::set_output_function</TT></A>
+<LI><A NAME="tex2html54"
+ HREF="node37.html"><TT>php::status</TT></A>
+<LI><A NAME="tex2html55"
+ HREF="node38.html"><TT>php_array</TT></A>
+<LI><A NAME="tex2html56"
+ HREF="node39.html"><TT>php_array::add</TT></A>
+<LI><A NAME="tex2html57"
+ HREF="node40.html"><TT>php_array::add_assoc</TT></A>
+<LI><A NAME="tex2html58"
+ HREF="node41.html"><TT>php_array::add_index</TT></A>
+<LI><A NAME="tex2html59"
+ HREF="node42.html"><TT>php_array::remove</TT></A>
+<LI><A NAME="tex2html60"
+ HREF="node43.html"><TT>php_iterator</TT></A>
+<LI><A NAME="tex2html61"
+ HREF="node44.html"><TT>php_iterator::done</TT></A>
+<LI><A NAME="tex2html62"
+ HREF="node45.html"><TT>php_iterator::get_data_type</TT></A>
+<LI><A NAME="tex2html63"
+ HREF="node46.html"><TT>php_iterator::get_data_c_string</TT></A>
+<LI><A NAME="tex2html64"
+ HREF="node47.html"><TT>php_iterator::get_data_double</TT></A>
+<LI><A NAME="tex2html65"
+ HREF="node48.html"><TT>php_iterator::get_data_long</TT></A>
+<LI><A NAME="tex2html66"
+ HREF="node49.html"><TT>php_iterator::get_data_bool</TT></A>
+<LI><A NAME="tex2html67"
+ HREF="node50.html"><TT>php_iterator::get_data_array</TT></A>
+<LI><A NAME="tex2html68"
+ HREF="node51.html"><TT>php_iterator::get_key_type</TT></A>
+<LI><A NAME="tex2html69"
+ HREF="node52.html"><TT>php_iterator::get_key_c_string</TT></A>
+<LI><A NAME="tex2html70"
+ HREF="node53.html"><TT>php_iterator::get_key_long</TT></A>
+<LI><A NAME="tex2html71"
+ HREF="node54.html"><TT>php_iterator::go_to_end</TT></A>
+<LI><A NAME="tex2html72"
+ HREF="node55.html"><TT>php_iterator::go_to_start</TT></A>
+<LI><A NAME="tex2html73"
+ HREF="node56.html"><TT>php_iterator::operator-</TT></A>
+<LI><A NAME="tex2html74"
+ HREF="node57.html"><TT>php_iterator::operator++</TT></A>
+<LI><A NAME="tex2html75"
+ HREF="node58.html"><TT>php_iterator::size</TT></A>
+<LI><A NAME="tex2html76"
+ HREF="node59.html"><TT>php_ret</TT></A>
+<LI><A NAME="tex2html77"
+ HREF="node60.html"><TT>php_stl</TT></A>
+<LI><A NAME="tex2html78"
+ HREF="node61.html"><TT>php_stl::call_string</TT></A>
+<LI><A NAME="tex2html79"
+ HREF="node62.html"><TT>php_stl::call_string_vector</TT></A>
+<LI><A NAME="tex2html80"
+ HREF="node63.html"><TT>php_stl::call_double_vector</TT></A>
+<LI><A NAME="tex2html81"
+ HREF="node64.html"><TT>php_stl::call_long_vector</TT></A>
+<LI><A NAME="tex2html82"
+ HREF="node65.html"><TT>php_stl::call_bool_vector</TT></A>
+<LI><A NAME="tex2html83"
+ HREF="node66.html"><TT>php_stl::call_int_vector</TT></A>
+<LI><A NAME="tex2html84"
+ HREF="node67.html"><TT>php_stl::call_uint_vector</TT></A>
+<LI><A NAME="tex2html85"
+ HREF="node68.html"><TT>php_stl::call_string_set</TT></A>
+<LI><A NAME="tex2html86"
+ HREF="node69.html"><TT>php_stl::call_double_set</TT></A>
+<LI><A NAME="tex2html87"
+ HREF="node70.html"><TT>php_stl::call_long_set</TT></A>
+<LI><A NAME="tex2html88"
+ HREF="node71.html"><TT>php_stl::call_int_set</TT></A>
+<LI><A NAME="tex2html89"
+ HREF="node72.html"><TT>php_stl::call_uint_set</TT></A>
+<LI><A NAME="tex2html90"
+ HREF="node73.html"><TT>php_stl::call_string_hash_set</TT></A>
+<LI><A NAME="tex2html91"
+ HREF="node74.html"><TT>php_stl::call_string_string_map</TT></A>
+<LI><A NAME="tex2html92"
+ HREF="node75.html"><TT>php_stl::call_string_double_map</TT></A>
+<LI><A NAME="tex2html93"
+ HREF="node76.html"><TT>php_stl::call_string_long_map</TT></A>
+<LI><A NAME="tex2html94"
+ HREF="node77.html"><TT>php_stl::call_string_bool_map</TT></A>
+<LI><A NAME="tex2html95"
+ HREF="node78.html"><TT>php_stl::call_string_int_map</TT></A>
+<LI><A NAME="tex2html96"
+ HREF="node79.html"><TT>php_stl::call_string_uint_map</TT></A>
+<LI><A NAME="tex2html97"
+ HREF="node80.html"><TT>php_stl::call_long_string_map</TT></A>
+<LI><A NAME="tex2html98"
+ HREF="node81.html"><TT>php_stl::call_long_double_map</TT></A>
+<LI><A NAME="tex2html99"
+ HREF="node82.html"><TT>php_stl::call_long_long_map</TT></A>
+<LI><A NAME="tex2html100"
+ HREF="node83.html"><TT>php_stl::call_long_bool_map</TT></A>
+<LI><A NAME="tex2html101"
+ HREF="node84.html"><TT>php_stl::call_long_int_map</TT></A>
+<LI><A NAME="tex2html102"
+ HREF="node85.html"><TT>php_stl::call_long_uint_map</TT></A>
+<LI><A NAME="tex2html103"
+ HREF="node86.html"><TT>php_stl::call_string_string_hash_map</TT></A>
+<LI><A NAME="tex2html104"
+ HREF="node87.html"><TT>php_stl::call_string_double_hash_map</TT></A>
+<LI><A NAME="tex2html105"
+ HREF="node88.html"><TT>php_stl::call_string_long_hash_map</TT></A>
+<LI><A NAME="tex2html106"
+ HREF="node89.html"><TT>php_stl::call_string_bool_hash_map</TT></A>
+<LI><A NAME="tex2html107"
+ HREF="node90.html"><TT>php_stl::call_string_int_hash_map</TT></A>
+<LI><A NAME="tex2html108"
+ HREF="node91.html"><TT>php_stl::call_string_uint_hash_map</TT></A>
+<LI><A NAME="tex2html109"
+ HREF="node92.html"><TT>php_type</TT></A>
+<LI><A NAME="tex2html110"
+ HREF="node93.html"><TT>php_tok</TT></A>
+</UL>
+<BR>
+<LI><A NAME="tex2html111"
+ HREF="node94.html">License and Copyright</A>
+<LI><A NAME="tex2html112"
+ HREF="node95.html">Contact</A>
+<LI><A NAME="tex2html113"
+ HREF="node96.html">About this document ...</A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
14 docs/www/internals.pl
@@ -0,0 +1,14 @@
+# LaTeX2HTML 2002-2-1 (1.70)
+# Associate internals original text with physical files.
+
+
+$key = q/Table1/;
+$ref_files{$key} = "$dir".q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/Table2/;
+$ref_files{$key} = "$dir".q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
View
29 docs/www/labels.pl
@@ -0,0 +1,29 @@
+# LaTeX2HTML 2002-2-1 (1.70)
+# Associate labels original text with physical files.
+
+
+$key = q/Table1/;
+$external_labels{$key} = "$URL/" . q|node9.html|;
+$noresave{$key} = "$nosave";
+
+$key = q/Table2/;
+$external_labels{$key} = "$URL/" . q|node11.html|;
+$noresave{$key} = "$nosave";
+
+1;
+
+
+# LaTeX2HTML 2002-2-1 (1.70)
+# labels from external_latex_labels array.
+
+
+$key = q/Table1/;
+$external_latex_labels{$key} = q|5.3|;
+$noresave{$key} = "$nosave";
+
+$key = q/Table2/;
+$external_latex_labels{$key} = q|5.5|;
+$noresave{$key} = "$nosave";
+
+1;
+
View
266 docs/www/node1.html
@@ -0,0 +1,266 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Contents</TITLE>
+<META NAME="description" CONTENT="Contents">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node2.html">
+<LINK REL="previous" HREF="phpembed.html">
+<LINK REL="up" HREF="phpembed.html">
+<LINK REL="next" HREF="node2.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html122"
+ HREF="node2.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html120"
+ HREF="phpembed.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html114"
+ HREF="phpembed.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html123"
+ HREF="node2.html">Motivation</A>
+<B> Up:</B> <A NAME="tex2html121"
+ HREF="phpembed.html">PHPEmbed</A>
+<B> Previous:</B> <A NAME="tex2html115"
+ HREF="phpembed.html">PHPEmbed</A>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+<BR>
+
+<H2><A NAME="SECTION00010000000000000000">
+Contents</A>
+</H2>
+<!--Table of Contents-->
+
+<UL>
+<LI><A NAME="tex2html124"
+ HREF="node2.html">Motivation</A>
+<LI><A NAME="tex2html125"
+ HREF="node3.html">Design</A>
+<LI><A NAME="tex2html126"
+ HREF="node4.html">Download</A>
+<LI><A NAME="tex2html127"
+ HREF="node5.html">Installation</A>
+<LI><A NAME="tex2html128"
+ HREF="node6.html">Usage</A>
+<UL>
+<LI><A NAME="tex2html129"
+ HREF="node7.html">Initializing</A>
+<LI><A NAME="tex2html130"
+ HREF="node8.html">Calling functions</A>
+<LI><A NAME="tex2html131"
+ HREF="node9.html">Passing Arguments</A>
+<LI><A NAME="tex2html132"
+ HREF="node10.html">Creating PHP Arrays</A>
+<LI><A NAME="tex2html133"
+ HREF="node11.html">Navigating PHP Arrays</A>
+<LI><A NAME="tex2html134"
+ HREF="node12.html">Additional Examples</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html135"
+ HREF="node13.html">Frequently Asked Questions</A>
+<UL>
+<LI><A NAME="tex2html136"
+ HREF="node14.html">Why not use macros instead of repeating so much code?</A>
+<LI><A NAME="tex2html137"
+ HREF="node15.html">Why do I keep running out of memory?</A>
+<LI><A NAME="tex2html138"
+ HREF="node16.html">Can I have multiple instances of PHPEmbed in one program?</A>
+<LI><A NAME="tex2html139"
+ HREF="node17.html">Will this library work on my platform?</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html140"
+ HREF="node18.html">Function Reference</A>
+<UL>
+<LI><A NAME="tex2html141"
+ HREF="node19.html">php</A>
+<LI><A NAME="tex2html142"
+ HREF="node20.html">php::call_bool</A>
+<LI><A NAME="tex2html143"
+ HREF="node21.html">php::call_bool_arr</A>
+<LI><A NAME="tex2html144"
+ HREF="node22.html">php::call_c_string</A>
+<LI><A NAME="tex2html145"
+ HREF="node23.html">php::call_c_string_arr</A>
+<LI><A NAME="tex2html146"
+ HREF="node24.html">php::call_double</A>
+<LI><A NAME="tex2html147"
+ HREF="node25.html">php::call_double_arr</A>
+<LI><A NAME="tex2html148"
+ HREF="node26.html">php::call_int_array</A>
+<LI><A NAME="tex2html149"
+ HREF="node27.html">php::call_long</A>
+<LI><A NAME="tex2html150"
+ HREF="node28.html">php::call_long_array</A>
+<LI><A NAME="tex2html151"
+ HREF="node29.html">php::call_php_array</A>
+<LI><A NAME="tex2html152"
+ HREF="node30.html">php::call_uint_array</A>
+<LI><A NAME="tex2html153"
+ HREF="node31.html">php::call_void</A>
+<LI><A NAME="tex2html154"
+ HREF="node32.html">php::eval_string</A>
+<LI><A NAME="tex2html155"
+ HREF="node33.html">php::load</A>
+<LI><A NAME="tex2html156"
+ HREF="node34.html">php::set_error_function</A>
+<LI><A NAME="tex2html157"
+ HREF="node35.html">php::set_message_function</A>
+<LI><A NAME="tex2html158"
+ HREF="node36.html">php::set_output_function</A>
+<LI><A NAME="tex2html159"
+ HREF="node37.html">php::status</A>
+<LI><A NAME="tex2html160"
+ HREF="node38.html">php_array</A>
+<LI><A NAME="tex2html161"
+ HREF="node39.html">php_array::add</A>
+<LI><A NAME="tex2html162"
+ HREF="node40.html">php_array::add_assoc</A>
+<LI><A NAME="tex2html163"
+ HREF="node41.html">php_array::add_index</A>
+<LI><A NAME="tex2html164"
+ HREF="node42.html">php_array::remove</A>
+<LI><A NAME="tex2html165"
+ HREF="node43.html">php_iterator</A>
+<LI><A NAME="tex2html166"
+ HREF="node44.html">php_iterator::done</A>
+<LI><A NAME="tex2html167"
+ HREF="node45.html">php_iterator::get_data_type</A>
+<LI><A NAME="tex2html168"
+ HREF="node46.html">php_iterator::get_data_c_string</A>
+<LI><A NAME="tex2html169"
+ HREF="node47.html">php_iterator::get_data_double</A>
+<LI><A NAME="tex2html170"
+ HREF="node48.html">php_iterator::get_data_long</A>
+<LI><A NAME="tex2html171"
+ HREF="node49.html">php_iterator::get_data_bool</A>
+<LI><A NAME="tex2html172"
+ HREF="node50.html">php_iterator::get_data_array</A>
+<LI><A NAME="tex2html173"
+ HREF="node51.html">php_iterator::get_key_type</A>
+<LI><A NAME="tex2html174"
+ HREF="node52.html">php_iterator::get_key_c_string</A>
+<LI><A NAME="tex2html175"
+ HREF="node53.html">php_iterator::get_key_long</A>
+<LI><A NAME="tex2html176"
+ HREF="node54.html">php_iterator::go_to_end</A>
+<LI><A NAME="tex2html177"
+ HREF="node55.html">php_iterator::go_to_start</A>
+<LI><A NAME="tex2html178"
+ HREF="node56.html">php_iterator::operator-</A>
+<LI><A NAME="tex2html179"
+ HREF="node57.html">php_iterator::operator++</A>
+<LI><A NAME="tex2html180"
+ HREF="node58.html">php_iterator::size</A>
+<LI><A NAME="tex2html181"
+ HREF="node59.html">php_ret</A>
+<LI><A NAME="tex2html182"
+ HREF="node60.html">php_stl</A>
+<LI><A NAME="tex2html183"
+ HREF="node61.html">php_stl::call_string</A>
+<LI><A NAME="tex2html184"
+ HREF="node62.html">php_stl::call_string_vector</A>
+<LI><A NAME="tex2html185"
+ HREF="node63.html">php_stl::call_double_vector</A>
+<LI><A NAME="tex2html186"
+ HREF="node64.html">php_stl::call_long_vector</A>
+<LI><A NAME="tex2html187"
+ HREF="node65.html">php_stl::call_bool_vector</A>
+<LI><A NAME="tex2html188"
+ HREF="node66.html">php_stl::call_int_vector</A>
+<LI><A NAME="tex2html189"
+ HREF="node67.html">php_stl::call_uint_vector</A>
+<LI><A NAME="tex2html190"
+ HREF="node68.html">php_stl::call_string_set</A>
+<LI><A NAME="tex2html191"
+ HREF="node69.html">php_stl::call_double_set</A>
+<LI><A NAME="tex2html192"
+ HREF="node70.html">php_stl::call_long_set</A>
+<LI><A NAME="tex2html193"
+ HREF="node71.html">php_stl::call_int_set</A>
+<LI><A NAME="tex2html194"
+ HREF="node72.html">php_stl::call_uint_set</A>
+<LI><A NAME="tex2html195"
+ HREF="node73.html">php_stl::call_string_hash_set</A>
+<LI><A NAME="tex2html196"
+ HREF="node74.html">php_stl::call_string_string_map</A>
+<LI><A NAME="tex2html197"
+ HREF="node75.html">php_stl::call_string_double_map</A>
+<LI><A NAME="tex2html198"
+ HREF="node76.html">php_stl::call_string_long_map</A>
+<LI><A NAME="tex2html199"
+ HREF="node77.html">php_stl::call_string_bool_map</A>
+<LI><A NAME="tex2html200"
+ HREF="node78.html">php_stl::call_string_int_map</A>
+<LI><A NAME="tex2html201"
+ HREF="node79.html">php_stl::call_string_uint_map</A>
+<LI><A NAME="tex2html202"
+ HREF="node80.html">php_stl::call_long_string_map</A>
+<LI><A NAME="tex2html203"
+ HREF="node81.html">php_stl::call_long_double_map</A>
+<LI><A NAME="tex2html204"
+ HREF="node82.html">php_stl::call_long_long_map</A>
+<LI><A NAME="tex2html205"
+ HREF="node83.html">php_stl::call_long_bool_map</A>
+<LI><A NAME="tex2html206"
+ HREF="node84.html">php_stl::call_long_int_map</A>
+<LI><A NAME="tex2html207"
+ HREF="node85.html">php_stl::call_long_uint_map</A>
+<LI><A NAME="tex2html208"
+ HREF="node86.html">php_stl::call_string_string_hash_map</A>
+<LI><A NAME="tex2html209"
+ HREF="node87.html">php_stl::call_string_double_hash_map</A>
+<LI><A NAME="tex2html210"
+ HREF="node88.html">php_stl::call_string_long_hash_map</A>
+<LI><A NAME="tex2html211"
+ HREF="node89.html">php_stl::call_string_bool_hash_map</A>
+<LI><A NAME="tex2html212"
+ HREF="node90.html">php_stl::call_string_int_hash_map</A>
+<LI><A NAME="tex2html213"
+ HREF="node91.html">php_stl::call_string_uint_hash_map</A>
+<LI><A NAME="tex2html214"
+ HREF="node92.html">php_type</A>
+<LI><A NAME="tex2html215"
+ HREF="node93.html">php_tok</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html216"
+ HREF="node94.html">License and Copyright</A>
+<LI><A NAME="tex2html217"
+ HREF="node95.html">Contact</A>
+</UL>
+<!--End of Table of Contents-->
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
163 docs/www/node10.html
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Creating PHP Arrays</TITLE>
+<META NAME="description" CONTENT="Creating PHP Arrays">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node11.html">
+<LINK REL="previous" HREF="node9.html">
+<LINK REL="up" HREF="node6.html">
+<LINK REL="next" HREF="node11.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html330"
+ HREF="node11.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html326"
+ HREF="node6.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html320"
+ HREF="node9.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html328"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html331"
+ HREF="node11.html">Navigating PHP Arrays</A>
+<B> Up:</B> <A NAME="tex2html327"
+ HREF="node6.html">Usage</A>
+<B> Previous:</B> <A NAME="tex2html321"
+ HREF="node9.html">Passing Arguments</A>
+ &nbsp; <B> <A NAME="tex2html329"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00064000000000000000">
+Creating PHP Arrays</A>
+</H2>
+
+<P>
+As long as the program has included either <code>php_cxx.h</code>, <code>php_stl.h</code>, or <code>php_arr.h</code>, a <code>php_array</code> object can be instantiated as follows:
+
+<P><PRE>
+php_array a;
+php_array b(a);
+</PRE>
+
+<P>
+The second <code>php_array</code> object <code>b</code> is created as a deep copy of the first object <code>a</code> although it is a bit pointless in this example as <code>a</code> is still empty.
+
+<P>
+There are three ways to add elements to a <code>php_array</code> in C++ (although just as with PHP, clients aren't limited to using any single method for any <code>php_array</code> object):
+
+<P>
+
+<UL>
+<LI><I>Associative</I> These entries map string values to arbitrary PHP values just as <code>$arr["blah"] = $foo</code> maps the string ``blah'' to the value of the variable <code>$foo</code> in a PHP script.
+</LI>
+<LI><I>Indexed</I> These entries map long values to arbitrary PHP values just as <code>$arr[5] = $foo</code> maps the long 5 to the value of the variable <code>$foo</code> in a PHP script.
+</LI>
+<LI><I>Enumerated</I> These entries insert an arbitrary value into the array with the next available index just as <code>$a[] = 5</code> would do with the value 5 in a PHP script.
+</LI>
+</UL>
+
+<P>
+Inserting data into the <code>php_array</code> uses the same mechanism as passing arguments to PHP functions. Refer to Table 1 on page&nbsp;<A HREF="node9.html#Table1"><IMG ALIGN="BOTTOM" BORDER="1" ALT="[*]"
+ SRC="file:/usr/local/share/lib/latex2html/icons/crossref.png"></A> for the list of argument specifiers.
+
+<P><PRE>
+a.add("l", 5);
+a.add_assoc("slsd", "one", 1, "two", 2.5);
+a.add_index("lsll", 6, "six", 128, 129);
+</PRE>
+
+<P>
+It is important to observe that when adding associative elements each even argument (starting with the 0th element) must be a string. Similarly, when adding indexed elements each even argument (again starting with the 0th element) must be a <code>long</code>.
+
+<P>
+Data can also be removed from the array by associative or numerical index
+
+<P><PRE>
+a.remove(6);
+a.remove("two");
+</PRE>
+
+<P>
+Passing these arrays into PHP as the argument to a function then is as simple as using the <code>php_array</code> argument specifier and passing a reference to the object.
+
+<P>
+<BLOCKQUOTE>
+<code>p.call_void("print_r", "a", &amp;a);</code>
+
+</BLOCKQUOTE>
+
+<P>
+This particular call, in the context of the other code above, produces the following operational output:
+
+<P><PRE>
+My Output: Array
+(
+ [0] =&gt; 5
+ [one] =&gt; 1
+ [128] =&gt; 129
+)
+</PRE>
+
+<P>
+<HR>
+<!--Navigation Panel-->
+<A NAME="tex2html330"
+ HREF="node11.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html326"
+ HREF="node6.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html320"
+ HREF="node9.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html328"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html331"
+ HREF="node11.html">Navigating PHP Arrays</A>
+<B> Up:</B> <A NAME="tex2html327"
+ HREF="node6.html">Usage</A>
+<B> Previous:</B> <A NAME="tex2html321"
+ HREF="node9.html">Passing Arguments</A>
+ &nbsp; <B> <A NAME="tex2html329"
+ HREF="node1.html">Contents</A></B>
+<!--End of Navigation Panel-->
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
209 docs/www/node11.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Navigating PHP Arrays</TITLE>
+<META NAME="description" CONTENT="Navigating PHP Arrays">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node12.html">
+<LINK REL="previous" HREF="node10.html">
+<LINK REL="up" HREF="node6.html">
+<LINK REL="next" HREF="node12.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html342"
+ HREF="node12.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html338"
+ HREF="node6.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html332"
+ HREF="node10.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html340"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html343"
+ HREF="node12.html">Additional Examples</A>
+<B> Up:</B> <A NAME="tex2html339"
+ HREF="node6.html">Usage</A>
+<B> Previous:</B> <A NAME="tex2html333"
+ HREF="node10.html">Creating PHP Arrays</A>
+ &nbsp; <B> <A NAME="tex2html341"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00065000000000000000">
+Navigating PHP Arrays</A>
+</H2>
+
+<P>
+Exploring the contents of <code>php_array</code> objects in C++ requires the use of the <code>php_iterator</code> class. This class must be initialized with a specific array and has an additional optional boolean argument for type warnings much like the base <code>php</code> class.
+
+<P>
+<BLOCKQUOTE>
+<code>php_iterator it(a);</code>
+
+</BLOCKQUOTE>
+
+<P>
+Just initializing the iterator causes it to jump to the first element in the array with a call to <code>go_to_start</code> but it is also possible to start at the end by calling <code>go_to_end</code>. These functions can also be used to reset the position of the iterator at any point during execution.
+
+<P>
+The <code>++</code> and <code>--</code> operators are used to navigate forward and backwards in the array a single element at a time and the <code>done</code> function is used to check for when the iterator has gone beyond the boundary of the <code>php_array</code> in any direction.
+
+<P><PRE>
+int count = 0;
+while(!it.done()){
+ count++;
+ it++;
+}
+</PRE>
+
+<P>
+At the end of this loop the value of <code>count</code> should be the same as the return of a call to the <code>size</code> function of the <code>it</code> object.
+
+<P>
+Navigation wouldn't be very useful without the ability to get data back out of the array. However, since any entry could contain data of any type, there are functions for checking the type of key and type of data at each element. See Table 2 for a list of all supported and unsupported types.
+
+<P>
+<BR><P></P>
+<DIV ALIGN="CENTER">
+<A NAME="Table2"></A>
+<DIV ALIGN="CENTER">
+<A NAME="586"></A>
+<TABLE CELLPADDING=3 BORDER="1">
+<CAPTION><STRONG>Table 2:</STRONG>
+<TT>php_type</TT> values</CAPTION>
+<TR><TD ALIGN="LEFT">Supported</TD>
+<TD ALIGN="LEFT">Unsupported</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><code>IS_LONG</code></TD>
+<TD ALIGN="LEFT"><code>IS_NULL</code></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><code>IS_DOUBLE</code></TD>
+<TD ALIGN="LEFT"><code>IS_OBJECT</code></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><code>IS_STRING</code></TD>
+<TD ALIGN="LEFT"><code>IS_RESOURCE</code></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><code>IS_BOOL</code></TD>
+<TD ALIGN="LEFT"><code>IS_CONSTANT</code></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><code>IS_ARRAY</code></TD>
+<TD ALIGN="LEFT">anything else</TD>
+</TR>
+</TABLE>
+</DIV>
+</DIV>
+<BR>
+
+<P>
+By using the type information the current position of the iterator, the data can be safely interpreted. <I>NOTE:</I> While the data at any array element could be any of the types listed in Table 2, keys can only be of type <code>IS_STRING</code> or <code>IS_LONG</code>. Consider the following code which prints out the key and value types and data for the last object in a iterator (doing nothing if the array is empty).
+
+<P><PRE>
+it.go_to_end();
+if(!it.done()){
+ switch(it.get_key_type()){
+ case IS_LONG:
+ printf("long %ld =&gt; ", it.get_key_long());
+ break;
+ case IS_STRING:
+ printf("string %s =&gt; ", it.get_key_c_string());
+ break;
+ default:
+ printf("??? %s =&gt; ", it.get_key_c_string());
+ break;
+ }
+
+ switch(it.get_data_type()){
+ case IS_LONG:
+ printf("long %ld\n", it.get_data_long());
+ break;
+ case IS_STRING:
+ printf("string %s\n", it.get_data_c_string());
+ break;
+ case IS_DOUBLE:
+ printf("double %f\n", it.get_data_double());
+ break;
+ case IS_BOOL:
+ printf("bool %s\n", it.get_data_c_string());
+ break;
+ case IS_ARRAY:
+ printf("Array\n");
+ {
+ php_array suba = it.get_data_array();
+ php_iterator subit(suba);
+ // now iterate on the sub array
+ }
+ break;
+ default:
+ printf("??? %s\n", it.get_data_c_string());
+ break;
+ }
+}
+</PRE>
+
+<P>
+Note that in several cases PHP type conversion is used to get the data in a C-Style string even when it has a known type. For boolean values this makes sense for output since C++ would only print 0 or 1 if the data were printed as an integer. It also works with the data of unknown type since those must include a mechanism for printing as a string and will provide better insight into what data was provided such as a resource of or an object name. Of course, since it is only printing the data underneath it anyways this code could also just ignore the type of the data underlying entirely and always print the C style string data, but that wouldn't make a very informative example.
+
+<P>
+Observe also in the above example that in the case that the data is an array a new <code>php_array</code> object is created and initialized to that sub array. Unlike the majority of operations in PHPEmbed, the sub array <code>suba</code> is actually a reference to the same data that exists in the <code>a</code> object so mutating it by using the <code>add</code> or <code>remove</code> methods of <code>php_array</code> will affect both <code>suba</code> and <code>a</code>.
+
+<P>
+<HR>
+<!--Navigation Panel-->
+<A NAME="tex2html342"
+ HREF="node12.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html338"
+ HREF="node6.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html332"
+ HREF="node10.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html340"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html343"
+ HREF="node12.html">Additional Examples</A>
+<B> Up:</B> <A NAME="tex2html339"
+ HREF="node6.html">Usage</A>
+<B> Previous:</B> <A NAME="tex2html333"
+ HREF="node10.html">Creating PHP Arrays</A>
+ &nbsp; <B> <A NAME="tex2html341"
+ HREF="node1.html">Contents</A></B>
+<!--End of Navigation Panel-->
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
71 docs/www/node12.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Additional Examples</TITLE>
+<META NAME="description" CONTENT="Additional Examples">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="previous" HREF="node11.html">
+<LINK REL="up" HREF="node6.html">
+<LINK REL="next" HREF="node13.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html352"
+ HREF="node13.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html348"
+ HREF="node6.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html344"
+ HREF="node11.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html350"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html353"
+ HREF="node13.html">Frequently Asked Questions</A>
+<B> Up:</B> <A NAME="tex2html349"
+ HREF="node6.html">Usage</A>
+<B> Previous:</B> <A NAME="tex2html345"
+ HREF="node11.html">Navigating PHP Arrays</A>
+ &nbsp; <B> <A NAME="tex2html351"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00066000000000000000">
+Additional Examples</A>
+</H2>
+
+<P>
+The example discussed in this section is implemented in the provided source code as <code>usage.cpp</code>. The source code also includes <code>example.cpp</code> and <code>example.php</code> which implement similar simple examples. In addition to that, there is a (relatively superficial) unit testing framework in <code>test.cpp</code> and <code>test.php</code> which will provide a working example of nearly every function available in the API.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
84 docs/www/node13.html
@@ -0,0 +1,84 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Frequently Asked Questions</TITLE>
+<META NAME="description" CONTENT="Frequently Asked Questions">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node18.html">
+<LINK REL="previous" HREF="node6.html">
+<LINK REL="up" HREF="phpembed.html">
+<LINK REL="next" HREF="node14.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html364"
+ HREF="node14.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html360"
+ HREF="phpembed.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html354"
+ HREF="node12.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html362"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html365"
+ HREF="node14.html">Why not use macros</A>
+<B> Up:</B> <A NAME="tex2html361"
+ HREF="phpembed.html">PHPEmbed</A>
+<B> Previous:</B> <A NAME="tex2html355"
+ HREF="node12.html">Additional Examples</A>
+ &nbsp; <B> <A NAME="tex2html363"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION00070000000000000000">
+Frequently Asked Questions</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL>
+<LI><A NAME="tex2html366"
+ HREF="node14.html"><I>Why not use macros instead of repeating so much code?</I></A>
+<LI><A NAME="tex2html367"
+ HREF="node15.html"><I>Why do I keep running out of memory?</I></A>
+<LI><A NAME="tex2html368"
+ HREF="node16.html"><I>Can I have multiple instances of PHPEmbed in one program?</I></A>
+<LI><A NAME="tex2html369"
+ HREF="node17.html"><I>Will this library work on my platform?</I></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
70 docs/www/node14.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Why not use macros instead of repeating so much code?</TITLE>
+<META NAME="description" CONTENT="Why not use macros instead of repeating so much code?">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node15.html">
+<LINK REL="previous" HREF="node13.html">
+<LINK REL="up" HREF="node13.html">
+<LINK REL="next" HREF="node15.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html380"
+ HREF="node15.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html376"
+ HREF="node13.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html370"
+ HREF="node13.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html378"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html381"
+ HREF="node15.html">Why do I keep</A>
+<B> Up:</B> <A NAME="tex2html377"
+ HREF="node13.html">Frequently Asked Questions</A>
+<B> Previous:</B> <A NAME="tex2html371"
+ HREF="node13.html">Frequently Asked Questions</A>
+ &nbsp; <B> <A NAME="tex2html379"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00071000000000000000">
+<I>Why not use macros instead of repeating so much code?</I></A>
+</H2>
+Macros can be convenient but they can also make code difficult to read and understand. Furthermore, Macros only provide a potential improvement in performance when inlining otherwise large and unwieldy sections of code which doesn't apply to this library. We hate code replication as much as anyone but we believe in clarity above all else.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
73 docs/www/node15.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Why do I keep running out of memory?</TITLE>
+<META NAME="description" CONTENT="Why do I keep running out of memory?">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node16.html">
+<LINK REL="previous" HREF="node14.html">
+<LINK REL="up" HREF="node13.html">
+<LINK REL="next" HREF="node16.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html392"
+ HREF="node16.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html388"
+ HREF="node13.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html382"
+ HREF="node14.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html390"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html393"
+ HREF="node16.html">Can I have multiple</A>
+<B> Up:</B> <A NAME="tex2html389"
+ HREF="node13.html">Frequently Asked Questions</A>
+<B> Previous:</B> <A NAME="tex2html383"
+ HREF="node14.html">Why not use macros</A>
+ &nbsp; <B> <A NAME="tex2html391"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00072000000000000000">
+<I>Why do I keep running out of memory?</I></A>
+</H2>
+PHP rarely runs beyond its memory limit in apache because the instance only lives for the time it takes to serve one page and then that thread dies and the memory is freed. The embedded environment, however, sticks around and hence requires vigilance around declaring variables in global scope and failing to clean them up with unset. Additionally, it may help to increase the allowed operating memory by using the <code>ini_set</code> function before loading any PHP scripts, for example: <code>ini_set('memory_limit', '100M');</code>
+
+<P>
+There are also a few known leaks in the PHP core, using the builtin PHP function <code>memory_get_usage()</code> in conjunction with the <code>memory_limit</code> ini setting will enable any client of PHPEmbed to predict a memory problem before it affects program operation and handle it as appropriate, for example by destroying the PHP object and recreating it.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
70 docs/www/node16.html
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Can I have multiple instances of PHPEmbed in one program?</TITLE>
+<META NAME="description" CONTENT="Can I have multiple instances of PHPEmbed in one program?">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node17.html">
+<LINK REL="previous" HREF="node15.html">
+<LINK REL="up" HREF="node13.html">
+<LINK REL="next" HREF="node17.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html404"
+ HREF="node17.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html400"
+ HREF="node13.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html394"
+ HREF="node15.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html402"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html405"
+ HREF="node17.html">Will this library work</A>
+<B> Up:</B> <A NAME="tex2html401"
+ HREF="node13.html">Frequently Asked Questions</A>
+<B> Previous:</B> <A NAME="tex2html395"
+ HREF="node15.html">Why do I keep</A>
+ &nbsp; <B> <A NAME="tex2html403"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00073000000000000000">
+<I>Can I have multiple instances of PHPEmbed in one program?</I></A>
+</H2>
+No. Although the SAPI provides thread safe resource management and access we haven't written this library to support it.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
69 docs/www/node17.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Will this library work on my platform?</TITLE>
+<META NAME="description" CONTENT="Will this library work on my platform?">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="previous" HREF="node16.html">
+<LINK REL="up" HREF="node13.html">
+<LINK REL="next" HREF="node18.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html414"
+ HREF="node18.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html410"
+ HREF="node13.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html406"
+ HREF="node16.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html412"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html415"
+ HREF="node18.html">Function Reference</A>
+<B> Up:</B> <A NAME="tex2html411"
+ HREF="node13.html">Frequently Asked Questions</A>
+<B> Previous:</B> <A NAME="tex2html407"
+ HREF="node16.html">Can I have multiple</A>
+ &nbsp; <B> <A NAME="tex2html413"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H2><A NAME="SECTION00074000000000000000">
+<I>Will this library work on my platform?</I></A>
+</H2>
+We have only tested this software on 64-bit linux architectures, and there is no guarantee it will even work there. That being said, if you can compile PHP on your machine you should be able to compile and use PHPEmbed.
+
+<P>
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
226 docs/www/node18.html
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Function Reference</TITLE>
+<META NAME="description" CONTENT="Function Reference">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<LINK REL="STYLESHEET" HREF="phpembed.css">
+
+<LINK REL="next" HREF="node94.html">
+<LINK REL="previous" HREF="node13.html">
+<LINK REL="up" HREF="phpembed.html">
+<LINK REL="next" HREF="node19.html">
+</HEAD>
+
+<BODY >
+<!--Navigation Panel-->
+<A NAME="tex2html426"
+ HREF="node19.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
+ SRC="file:/usr/local/share/lib/latex2html/icons/next.png"></A>
+<A NAME="tex2html422"
+ HREF="phpembed.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
+ SRC="file:/usr/local/share/lib/latex2html/icons/up.png"></A>
+<A NAME="tex2html416"
+ HREF="node17.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
+ SRC="file:/usr/local/share/lib/latex2html/icons/prev.png"></A>
+<A NAME="tex2html424"
+ HREF="node1.html">
+<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
+ SRC="file:/usr/local/share/lib/latex2html/icons/contents.png"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html427"
+ HREF="node19.html">php</A>
+<B> Up:</B> <A NAME="tex2html423"
+ HREF="phpembed.html">PHPEmbed</A>
+<B> Previous:</B> <A NAME="tex2html417"
+ HREF="node17.html">Will this library work</A>
+ &nbsp; <B> <A NAME="tex2html425"
+ HREF="node1.html">Contents</A></B>
+<BR>
+<BR>
+<!--End of Navigation Panel-->
+
+<H1><A NAME="SECTION00080000000000000000">
+Function Reference</A>
+</H1>
+
+<P>
+<BR><HR>
+<!--Table of Child-Links-->
+<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
+
+<UL>
+<LI><A NAME="tex2html428"
+ HREF="node19.html"><TT>php</TT></A>
+<LI><A NAME="tex2html429"
+ HREF="node20.html"><TT>php::call_bool</TT></A>
+<LI><A NAME="tex2html430"
+ HREF="node21.html"><TT>php::call_bool_arr</TT></A>
+<LI><A NAME="tex2html431"
+ HREF="node22.html"><TT>php::call_c_string</TT></A>
+<LI><A NAME="tex2html432"
+ HREF="node23.html"><TT>php::call_c_string_arr</TT></A>
+<LI><A NAME="tex2html433"
+ HREF="node24.html"><TT>php::call_double</TT></A>
+<LI><A NAME="tex2html434"
+ HREF="node25.html"><TT>php::call_double_arr</TT></A>
+<LI><A NAME="tex2html435"
+ HREF="node26.html"><TT>php::call_int_array</TT></A>
+<LI><A NAME="tex2html436"
+ HREF="node27.html"><TT>php::call_long</TT></A>
+<LI><A NAME="tex2html437"
+ HREF="node28.html"><TT>php::call_long_array</TT></A>
+<LI><A NAME="tex2html438"
+ HREF="node29.html"><TT>php::call_php_array</TT></A>
+<LI><A NAME="tex2html439"
+ HREF="node30.html"><TT>php::call_uint_array</TT></A>
+<LI><A NAME="tex2html440"
+ HREF="node31.html"><TT>php::call_void</TT></A>
+<LI><A NAME="tex2html441"
+ HREF="node32.html"><TT>php::eval_string</TT></A>
+<LI><A NAME="tex2html442"
+ HREF="node33.html"><TT>php::load</TT></A>
+<LI><A NAME="tex2html443"
+ HREF="node34.html"><TT>php::set_error_function</TT></A>
+<LI><A NAME="tex2html444"
+ HREF="node35.html"><TT>php::set_message_function</TT></A>
+<LI><A NAME="tex2html445"
+ HREF="node36.html"><TT>php::set_output_function</TT></A>
+<LI><A NAME="tex2html446"
+ HREF="node37.html"><TT>php::status</TT></A>
+<LI><A NAME="tex2html447"
+ HREF="node38.html"><TT>php_array</TT></A>
+<LI><A NAME="tex2html448"
+ HREF="node39.html"><TT>php_array::add</TT></A>
+<LI><A NAME="tex2html449"
+ HREF="node40.html"><TT>php_array::add_assoc</TT></A>
+<LI><A NAME="tex2html450"
+ HREF="node41.html"><TT>php_array::add_index</TT></A>
+<LI><A NAME="tex2html451"
+ HREF="node42.html"><TT>php_array::remove</TT></A>
+<LI><A NAME="tex2html452"
+ HREF="node43.html"><TT>php_iterator</TT></A>
+<LI><A NAME="tex2html453"
+ HREF="node44.html"><TT>php_iterator::done</TT></A>
+<LI><A NAME="tex2html454"
+ HREF="node45.html"><TT>php_iterator::get_data_type</TT></A>
+<LI><A NAME="tex2html455"
+ HREF="node46.html"><TT>php_iterator::get_data_c_string</TT></A>
+<LI><A NAME="tex2html456"
+ HREF="node47.html"><TT>php_iterator::get_data_double</TT></A>
+<LI><A NAME="tex2html457"
+ HREF="node48.html"><TT>php_iterator::get_data_long</TT></A>
+<LI><A NAME="tex2html458"
+ HREF="node49.html"><TT>php_iterator::get_data_bool</TT></A>
+<LI><A NAME="tex2html459"
+ HREF="node50.html"><TT>php_iterator::get_data_array</TT></A>
+<LI><A NAME="tex2html460"
+ HREF="node51.html"><TT>php_iterator::get_key_type</TT></A>
+<LI><A NAME="tex2html461"
+ HREF="node52.html"><TT>php_iterator::get_key_c_string</TT></A>
+<LI><A NAME="tex2html462"
+ HREF="node53.html"><TT>php_iterator::get_key_long</TT></A>
+<LI><A NAME="tex2html463"
+ HREF="node54.html"><TT>php_iterator::go_to_end</TT></A>
+<LI><A NAME="tex2html464"
+ HREF="node55.html"><TT>php_iterator::go_to_start</TT></A>
+<LI><A NAME="tex2html465"
+ HREF="node56.html"><TT>php_iterator::operator-</TT></A>
+<LI><A NAME="tex2html466"
+ HREF="node57.html"><TT>php_iterator::operator++</TT></A>
+<LI><A NAME="tex2html467"
+ HREF="node58.html"><TT>php_iterator::size</TT></A>
+<LI><A NAME="tex2html468"
+ HREF="node59.html"><TT>php_ret</TT></A>
+<LI><A NAME="tex2html469"
+ HREF="node60.html"><TT>php_stl</TT></A>
+<LI><A NAME="tex2html470"
+ HREF="node61.html"><TT>php_stl::call_string</TT></A>
+<LI><A NAME="tex2html471"
+ HREF="node62.html"><TT>php_stl::call_string_vector</TT></A>
+<LI><A NAME="tex2html472"
+ HREF="node63.html"><TT>php_stl::call_double_vector</TT></A>
+<LI><A NAME="tex2html473"
+ HREF="node64.html"><TT>php_stl::call_long_vector</TT></A>
+<LI><A NAME="tex2html474"
+ HREF="node65.html"><TT>php_stl::call_bool_vector</TT></A>
+<LI><A NAME="tex2html475"
+ HREF="node66.html"><TT>php_stl::call_int_vector</TT></A>
+<LI><A NAME="tex2html476"
+ HREF="node67.html"><TT>php_stl::call_uint_vector</TT></A>
+<LI><A NAME="tex2html477"
+ HREF="node68.html"><TT>php_stl::call_string_set</TT></A>
+<LI><A NAME="tex2html478"
+ HREF="node69.html"><TT>php_stl::call_double_set</TT></A>
+<LI><A NAME="tex2html479"
+ HREF="node70.html"><TT>php_stl::call_long_set</TT></A>
+<LI><A NAME="tex2html480"
+ HREF="node71.html"><TT>php_stl::call_int_set</TT></A>
+<LI><A NAME="tex2html481"
+ HREF="node72.html"><TT>php_stl::call_uint_set</TT></A>
+<LI><A NAME="tex2html482"
+ HREF="node73.html"><TT>php_stl::call_string_hash_set</TT></A>
+<LI><A NAME="tex2html483"
+ HREF="node74.html"><TT>php_stl::call_string_string_map</TT></A>
+<LI><A NAME="tex2html484"
+ HREF="node75.html"><TT>php_stl::call_string_double_map</TT></A>
+<LI><A NAME="tex2html485"
+ HREF="node76.html"><TT>php_stl::call_string_long_map</TT></A>
+<LI><A NAME="tex2html486"
+ HREF="node77.html"><TT>php_stl::call_string_bool_map</TT></A>
+<LI><A NAME="tex2html487"
+ HREF="node78.html"><TT>php_stl::call_string_int_map</TT></A>
+<LI><A NAME="tex2html488"
+ HREF="node79.html"><TT>php_stl::call_string_uint_map</TT></A>
+<LI><A NAME="tex2html489"
+ HREF="node80.html"><TT>php_stl::call_long_string_map</TT></A>
+<LI><A NAME="tex2html490"
+ HREF="node81.html"><TT>php_stl::call_long_double_map</TT></A>
+<LI><A NAME="tex2html491"
+ HREF="node82.html"><TT>php_stl::call_long_long_map</TT></A>
+<LI><A NAME="tex2html492"
+ HREF="node83.html"><TT>php_stl::call_long_bool_map</TT></A>
+<LI><A NAME="tex2html493"
+ HREF="node84.html"><TT>php_stl::call_long_int_map</TT></A>
+<LI><A NAME="tex2html494"
+ HREF="node85.html"><TT>php_stl::call_long_uint_map</TT></A>
+<LI><A NAME="tex2html495"
+ HREF="node86.html"><TT>php_stl::call_string_string_hash_map</TT></A>
+<LI><A NAME="tex2html496"
+ HREF="node87.html"><TT>php_stl::call_string_double_hash_map</TT></A>
+<LI><A NAME="tex2html497"
+ HREF="node88.html"><TT>php_stl::call_string_long_hash_map</TT></A>
+<LI><A NAME="tex2html498"
+ HREF="node89.html"><TT>php_stl::call_string_bool_hash_map</TT></A>
+<LI><A NAME="tex2html499"
+ HREF="node90.html"><TT>php_stl::call_string_int_hash_map</TT></A>
+<LI><A NAME="tex2html500"
+ HREF="node91.html"><TT>php_stl::call_string_uint_hash_map</TT></A>
+<LI><A NAME="tex2html501"
+ HREF="node92.html"><TT>php_type</TT></A>
+<LI><A NAME="tex2html502"
+ HREF="node93.html"><TT>php_tok</TT></A>
+</UL>
+<!--End of Table of Child-Links-->
+<BR><HR>
+<ADDRESS>
+Andrew Bosworth
+2007-02-08
+</ADDRESS>
+</BODY>
+</HTML>
View
87 docs/www/node19.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
+original version by: Nikos Drakos, CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>php</TITLE>
+<META NAME="description" CONTENT="php">
+<META NAME="keywords" CONTENT="phpembed">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1&qu