Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

"Cannot redeclare" bei neuer PHP Installation

3 views
Skip to first unread message

Rainer Wahl

unread,
Oct 31, 2009, 5:18:08 PM10/31/09
to

K�rzlich habe ich mein System mit Win7 Prof. 64Bit neu installiert. Im Zuge
dieser Neuinstallation nahm ich die Chance gleich beim Schopfe, auch Apache
HTTP, PHP und MySQL neu zu installieren. Auf graue Haare war ich dabei
schon vorbereitet. Man kennt ja seine Pappenheimer..

Anf�nglich lief hier einmal Apache 2.0.55 (jetzt 2.2), PHP 5.2.4 (jetzt
5.3.0). Meine Homepage residiert hier lokal unter c:\web und in einem
Unterverzeichnis darin eine weitere Homepage. Alles lief seit Jahren so wie
es soll (ganz, ganz am Anfang war einmal PHP 4.x installiert).

Jetzt mit der neuen Installation meldet mir PHP pl�tzlich:

Fatal error: Cannot redeclare quoted_printable_encode() in
C:\web\functions.php on line 15

Kommentiere ich diese Fkt. aus, hagelt es andere Fehlermeldungen und nichts
sieht aus wie es soll. Ein E_All hatte ich auch vorher schon drin usw.,
damit der Code so sauber wie m�glich l�uft und auch Ungereimtheiten
gemeldet werden (und von mir ausgeb�gelt werden k�nnen), auch wenn es auf
dem Server im Netz auch so schon l�uft.

Die functions.php binde ich BTW �ber require ein. Auch ein �ndern in
require_once �ndert nichts an der Fehlermeldung. Vorher bekam ich diese
Fehlermeldung wie gesagt noch nie zu Gesicht - oder verh�lt sich die 5.3
soviel anders als die 5.2 von PHP?

Da es sich hier wie gesagt um eine Neuinstallation handelt, vermute ich
"nur" ein Konfigurationsproblem, wei� aber im moment nicht, wo ich ansetzen
soll. Hat irgendjemand einen Tipp f�r mich, wo ich anfangen sollte zu
suchen oder was ich �ndern kann?

--
Airbrush FAQ: http://www.r-wahl.de/airbrush/faq.php
Baubericht ME-109 RC-Flugmodell:
http://www.r-wahl.de/modellbau/me-109/me-109.php

Carsten Wiedmann

unread,
Oct 31, 2009, 5:42:07 PM10/31/09
to
Rainer Wahl schrieb:
> Anfänglich lief hier einmal Apache 2.0.55 (jetzt 2.2), PHP 5.2.4 (jetzt
> 5.3.0).
>
> Jetzt mit der neuen Installation meldet mir PHP plötzlich:

>
> Fatal error: Cannot redeclare quoted_printable_encode() in
> C:\web\functions.php on line 15

In PHP < 5.3.0 gab es noch keine Funktion quoted_printable_encode() (siehe
PHP Manual [1]), weshalb du dir eine eigene mit diesem Namen anlegen
konntest. Jetzt wo es so eine Funktion gibt, kannst du keine eigene mit
diesem Namen haben.


> oder verhält sich die 5.3 soviel anders als die 5.2 von PHP?

Siehe PHP-Manual [2].

Gruß
Carsten

[1] http://www.php.net/manual/en/function.quoted-printable-encode.php
[2] http://www.php.net/manual/en/migration53.php

Thomas Hochstein

unread,
Nov 1, 2009, 2:29:49 AM11/1/09
to
Carsten Wiedmann schrieb:

> In PHP < 5.3.0 gab es noch keine Funktion quoted_printable_encode() (siehe
> PHP Manual [1]), weshalb du dir eine eigene mit diesem Namen anlegen
> konntest. Jetzt wo es so eine Funktion gibt, kannst du keine eigene mit
> diesem Namen haben.

Die Abhilfe ist dementsprechend nicht, die eine Zeile
auszukommentieren, sondern die Funktion �berall umzubenennen (also die
Funktionsdefinition und dann nat�rlich auch jeden Aufruf dieser
Funktion).

-thh

Niels Braczek

unread,
Nov 1, 2009, 9:12:57 AM11/1/09
to
Thomas Hochstein schrieb:

> Carsten Wiedmann schrieb:
>
>> In PHP < 5.3.0 gab es noch keine Funktion quoted_printable_encode()

> Die Abhilfe ist dementsprechend nicht, die eine Zeile
> auszukommentieren, sondern die Funktion überall umzubenennen (also die
> Funktionsdefinition und dann natürlich auch jeden Aufruf dieser
> Funktion).

Die Lösung liegt vielmahr darin, die Funktion nur zu deklarieren, wenn
sie gebraucht wird:

if ( !function_exists( 'quoted_printable_encode' ) ) {
function quoted_printable_encode(...)
{
...
}
}

Voraussetzung dafür ist, dass Signatur und Verhalten der eigenen und der
eingebauten Funktion identisch sind - was bei diesem Funktionsnamen
allerdings anzunehmen ist.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · e-Commerce · Joomla! Content Management |
------------------------------------------------------------------

Thomas Hochstein

unread,
Nov 1, 2009, 2:15:43 PM11/1/09
to
Niels Braczek schrieb:

> Die L�sung liegt vielmahr darin, die Funktion nur zu deklarieren, wenn
> sie gebraucht wird:
[...]

Noch besser, ja. Danke!

Rainer Wahl

unread,
Nov 2, 2009, 9:11:12 AM11/2/09
to
Am Sat, 31 Oct 2009 22:42:07 +0100 schrieb Carsten Wiedmann:

> In PHP < 5.3.0 gab es noch keine Funktion quoted_printable_encode() (siehe
> PHP Manual [1]), weshalb du dir eine eigene mit diesem Namen anlegen
> konntest. Jetzt wo es so eine Funktion gibt, kannst du keine eigene mit
> diesem Namen haben.

Argl! =8-/
OK, das erkl�rt alles. Danke!

0 new messages