---
title: 'PHP in purem Java mit Quercus'
url: 'https://tutego.de/blog/javainsel/2007/03/php-in-purem-java-mit-quercus'
markdown: 'https://tutego.de/blog/javainsel/2007/03/php-in-purem-java-mit-quercus.md'
date: '2007-03-23'
description: 'Quercus (http://quercus.caucho.com/) implementiert eine PHP 5 Engine in purem Java. Die Software ist unter LGPL und stammt von Caucho, die auch den performanten Resin-Server implementieren. Laut Herstellerangaben laufen bisher DokuWiki, Dragonfly CMS, Drupal, Gallery2, Joomla, Mambo, Mantis, Media…'
taxonomy:
  category:
    - 'Open Source'
---

# PHP in purem Java mit Quercus

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## PHP in purem Java mit Quercus

23.03.2007 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Quercus ([http://quercus.caucho.com/](http://quercus.caucho.com/ "http://quercus.caucho.com/")) implementiert eine PHP 5 Engine in purem Java. Die Software ist unter LGPL und stammt von Caucho, die auch den performanten Resin-Server implementieren. Laut Herstellerangaben laufen bisher

- DokuWiki, Dragonfly CMS, Drupal, Gallery2, Joomla, Mambo, Mantis, MediaWiki, Phorum, `phpBB`, `phpMyAdmin`, PHP-Nuke, WordPress, XOOPS ([http://quercus.caucho.com/quercus-3.1/doc/quercus-list-of-applications.xtp](http://quercus.caucho.com/quercus-3.1/doc/quercus-list-of-applications.xtp "http://quercus.caucho.com/quercus-3.1/doc/quercus-list-of-applications.xtp"))

Von den PHP-Funktionen fehlen bisher:

- call\_user\_method, call\_user\_method\_array, get\_declared\_interfaces, interface\_exists, property\_exists
- date\_default\_timezone\_get, date\_default\_timezone\_set, date\_sunrise, date\_sunset, idate, localtime, strptime
- debug\_print\_backtrace, restore\_exception\_handler, set\_exception\_handler
- exif\_read\_data, exif\_thumbnail, exif\_tagname
- disk\_free\_space (stub), disk\_total\_space (stub), readlink (stub), umask (stub)
- register\_tick\_function, unregister\_tick\_function
- bind\_textdomain\_codeset (stub)
- headers\_list, setrawcookie
- ob\_iconv\_handler
- imagecolorclosesthwb, imagecolorset, imagecolorstotal, imageftbbox, imagefttext, imagegammacorrect, imageinterlace, imagelayereffect, imageloadfont, imagepalettecopy, imagepsbbox, imagepscopyfont, imagepsencodefont, imagepsextendfont, imagepsfreefont, imagepsloadfont, imagepsslantfont, imagepstext, imagerotate, iptcembed, image2wbmp, jpeg2wbmp, png2wbmp, imagecreatefromgd2, imagecreatefromgd2part, imagecreatefromgd, imagegd2, imagegd
- ezmlm\_hash
- mhash\_keygen\_s2k
- connection\_aborted, connection\_status, connection\_timeout, \_\_halt\_compiler, highlight\_file, highlight\_string, ignore\_user\_abort, php\_check\_syntax, php\_strip\_whitespace, show\_source, sys\_getloadavg, time\_nanosleep, time\_sleep\_until
- mysqli\_debug, mysqli\_disable\_reads\_from\_master, mysqli\_disable\_rpl\_parse, mysqli\_info, mysqli\_kill, mysqli\_master\_query, mysqli\_report, mysqli\_rpl\_parse\_enabled, mysqli\_rpl\_probe, mysqli\_rpl\_query\_type, mysqli\_send\_long\_data, mysqli\_send\_query, mysqli\_server\_end, mysqli\_server\_init, mysqli\_ssl\_set, mysqli\_stmt\_send\_long\_data, mysqli\_thread\_id, mysqli\_thread\_safe
- dns\_get\_record, inet\_ntop, inet\_pton, long2ip, pfsockopen, socket\_get\_status, socket\_get\_blocking, socket\_get\_timeout
- assert\_options, dl (stub), get\_current\_user (stub), get\_included\_files, get\_magic\_quotes\_gpc, get\_magic\_quotes\_runtime, get\_required\_files, getopt, getrusage, ini\_restore, memory\_get\_usage, php\_ini\_scanned\_files, php\_logo\_gid, phpcredits, putenv, restore\_include\_path, set\_magic\_quotes\_runtime, zend\_logo\_gid, zend\_version
- proc\_close, proc\_get\_status, proc\_nice, proc\_open, proc\_terminate
- stream\_bucket\_append, stream\_bucket\_make\_writeable, stream\_bucket\_new, stream\_bucket\_prepend, stream\_filter\_append, stream\_filter\_prepend, stream\_filter\_register, stream\_filter\_remove, stream\_get\_filters, stream\_get\_meta\_data, stream\_select, stream\_set\_blocking, stream\_set\_timeout (stub), stream\_set\_write\_buffer (stub), stream\_socket\_accept, stream\_socket\_server, stream\_socket\_client, stream\_socket\_enable\_crypto, stream\_socket\_get\_name, stream\_socket\_pair, stream\_socket\_recvform, stream\_socket\_sendto, stream\_socket\_server
- xml\_error\_string, xml\_get\_current\_byte\_index, xml\_get\_current\_column\_number, xml\_get\_current\_line\_number, xml\_get\_error\_code, xml\_set\_external\_entity\_ref\_handler
- und noch ein paar

Aus PHP heraus lassen sich Java-Objekte bauen und auf die gesamte API zugreifen:

<?php

```java
$a = new java("java.util.Date", 1234567);

echo $a->day();

?>
```

Neu eingeführt in PHP wurde auch das import Schlüsselwort.

Beiträge, die sich mit Quercus beschäftigen und zeigen, wie das MediaWiki und Forums-Software läuft, sind:

- [http://blogs.sun.com/alexismp/entry/php\_in\_glassfish\_first\_steps](http://blogs.sun.com/alexismp/entry/php_in_glassfish_first_steps "http://blogs.sun.com/alexismp/entry/php_in_glassfish_first_steps"), Video: [http://blogs.sun.com/alexismp/resource/phpbbingf.html](http://blogs.sun.com/alexismp/resource/phpbbingf.html "http://blogs.sun.com/alexismp/resource/phpbbingf.html")
- 100% Java Quercus PHP engine running in GlassFish Java EE 5 Application Server… [http://weblogs.java.net/blog/ludo/archive/2007/03/100\_java\_quercu.html](http://weblogs.java.net/blog/ludo/archive/2007/03/100_java_quercu.html "http://weblogs.java.net/blog/ludo/archive/2007/03/100_java_quercu.html")
- Java and PHP Intermingling? [http://www.javalobby.org/java/forums/t91427.html](http://www.javalobby.org/java/forums/t91427.html "http://www.javalobby.org/java/forums/t91427.html")

Kategorien: [Open Source](https://tutego.de/blog/javainsel/category/open-source/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Inselupdate: Ist eine Zahl mit value % 2 == 1 ungerade?](https://tutego.de/blog/javainsel/2007/03/inselupdate-ist-eine-zahl-mit-value-2-1-ungerade.md)
- Next: [So kann eine Exception ein trauriges Gesicht machen](https://tutego.de/blog/javainsel/2007/03/so-kann-eine-exception-ein-trauriges-gesicht-machen.md)
