Code funktioniert manchmal nicht?

Alice

Erfahrenes Mitglied
Beitrag komplett überarbeitet!

Hallo.

Mir fällt leider kein besserer Thread-Titel ein.

Ich habe folgenden Code:
PHP:
$thumb = new Imagick();
$thumb->readImage('/www/htdocs/XXX/images/grafik.svg');
$thumb->writeImage('/www/htdocs/XXX/imgaes/grafik.png');
$thumb->clear();
$thumb->destroy();

Wenn ich diesen Code NACH diesem Code hier einbauen funktioniert IMagick nicht mehr richtig und es wird nur ein weisses Bild erstellt.

PHP:
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');

Solange der IMagick Code DARÜBER steht, funktioniert alles perfekt.

Kann mir jemand helfen?
 
Zuletzt bearbeitet:
In der PHP.ini steht bei mir:
Directive -> Local Value -> Master Value
imagick.locale_fix -> 0 -> 0
imagick.progress_monitor -> 0 -> 0

Was heisst das jetzt für mich? Muss ich meinen Hoster sagen das die das reparieren sollen?
 
Du könntest es temporär mal mit ini_set() probieren. Das könnte ungefähr so aussehen:

PHP:
// Schreib mich vor den ersten imagick-Aufruf
ini_set('imagick.locale_fix', 'On');
 
Das geht leider schon einmal nicht.

So geht es auch nicht:
PHP:
ini_set("imagick.locale_fix", 'On');

So auch nicht:
PHP:
@ini_set('imagick.locale_fix', 'On');

So auch nicht:
PHP:
@ini_set("imagick.locale_fix", 'On');
 
Kommt eine Fehlermeldung? Wenn ja, welche? Das @ unterdrückt die Fehlermeldungen nur, die einem evtl. wirklich weiter helfen ;-)

Du kannst mal das error_reporting hochdrehen:

PHP:
// Schreibe mich in die ersten Zeilen des Scripts
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);

Versuch auch mal, statt "On" einfach nur 1 zu schreiben.
 
Hmm, so langsam gehn mir die Ideen aus ;-)

Erstmal vergewissern, das der ini-Parameter auch wirklich geändert wurde. Tausch mal den ini_set('imagick.local_fix'... aus durch

PHP:
echo "imagick.locale_fix vor der Anpassung: " . ini_get('imagick.locale_fix') . "<br/>";
ini_set('imagick.locale_fix', 1);
echo "imagick.locale_fix nach der Anpassung: " . ini_get('imagick.locale_fix') . "<br/>";

Wenn der Parameter tatsächlich geändert wurde, liegt es nicht an dem Setting. In diesem Falle würde ich einen Bug vermuten.
 
PHP:
imagick.locale_fix vor der Anpassung: 0
imagick.locale_fix nach der Anpassung: 1

?

Ich habe eben eine E-Mail von meine Hoster bekommen und er will das Problem nicht beheben weil:
Die gewünschte Änderung in der php.ini können wir leider nicht vornehmen, da es sich hierbei um einen Shared-Server handelt und es zu Probleme mit den Webseiten anderer Kunden kommen kann. Dies geht leider nur auf einem eigenen Managed-Server.
 
Brauche ich diese "Setlocale" Einstellung eigentlich?

Ich weiss gar nicht mehr warum ich das damals eingebaut habe. Ich glaube wegen den Umlauten aber mittlerweile habe ich ja das ganze Skript umgebaut.
 

Neue Beiträge

Zurück