moziloCMS Supportforum

moziloCMS => Betatests => Thema gestartet von: neo67 am 14. Mai 2013, 10:10:19

Titel: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 10:10:19
Bei der Installation der 2.0er kommt es zum Fehler:

Parse error: syntax error, unexpected T_FUNCTION in /www/htdocs/w00d5d1d/cms-test-vergleich.de/cms/SpecialChars.php on line 133

Auf dem Server läuft:
PHP Version 5.2.12-nmm4

Gruß
Jürgen
Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 10:32:11
Ich glaube die ";" müssen mit -'- versehen werden.

Zeile:  134
return "^&#".ord($arr[1]).";";
in
return "'^&#"'.ord($arr[1]).';'";

und bei Zeile 147 auch...
Ich teste das mal...
Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 10:39:49
Mit dem alten Code der 1.12 geht es durch, da fehlt auch die
function($arr)

// ------------------------------------------------------------------------------
// Geschütze zeichen codieren
// ------------------------------------------------------------------------------
    function encodeProtectedChr($text) {# protected
        # alle geschützten zeichen suchen und in html code wandeln auch das ^
        $text = preg_replace("/\^(.)/Umsie", "'^&#'.ord('\\1').';'", $text);
        return $text;
    }

// ------------------------------------------------------------------------------
// Geschütze zeichen wieder herstellen
// ------------------------------------------------------------------------------
    function decodeProtectedChr($text) {
        # alle ^&#?????; suchen und als zeichen ohne ^ (^) ersetzen
        $text = preg_replace("/^&#(\d{2,5});/e", "chr('\\1')", $text);
        return $text;
    }
Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 10:53:17
Vielleicht ein Problem der PHP-Version?
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 11:00:58
Hallo!

das betrifft den commit von mir:
https://github.com/mozilo/mozilo2.0/commit/3d15db91aa0c0cde37261d62c4719eb2a0b73c96 (https://github.com/mozilo/mozilo2.0/commit/3d15db91aa0c0cde37261d62c4719eb2a0b73c96)

Scheint ein Problem der Version sein, preg_replace_callback() ist immer schon vorhanden jedoch scheinbar der Einsatz von closures (Anonyme Funktionen,   http://php.net/manual/en/class.closure.php (http://php.net/manual/en/class.closure.php))  erst seit PHP 5.3.

Das läßt sich aber lösen ( http://php.net/manual/de/function.create-function.php (http://php.net/manual/de/function.create-function.php) ) das war mir vorher so nicht bewußt sorry, leser wissen mehr  ::)

ZitatHäufig werden Sie die callback-Funktion für preg_replace_callback() nur an einer Stelle benötigen. In diesem Fall können Sie eine Anonyme Funktion (seit PHP 5.3.0) oder create_function() verwenden, um innerhalb des Aufrufs von preg_replace_callback() eine anonyme Funktion als Callback zu deklarieren.

Werd schaun das ich kurzfristig dazukomme!!

LG
Jürgen
Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 11:14:16
Hi Jürgen,

kann ich denn dann das Script überhaupt mit meiner PHP-Version auf dem Server nutzen?
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 11:30:23
Jetzt grad nicht, aber dann schon, es gibt sogar was ich gesehen habe 2 Möglichkeiten das in Wohlgefallen aufzulösen
(wobei eine relativ aktuelle PHP Version grundsätzich so und so nicht verkehrt ist)

Ich weiß momentan nicht welche Version wir als minimum benötigen... Moment... mal kurz im Code  wühlen..

So:
Also generell wird an mehr Stellen auf Version mind. 5.0 und in der Install Routine 5.1.2. geprüft, was ich so auf die Schnelle gesehen hab (bin grad in Arbeit).

LG
Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 14. Mai 2013, 11:51:07
Dann passt das ja.
Ich kann auch auf dem Server alle Dateien in *.php53 umbenennen, dann wird PHP 5.3 benutzt.
Aber, wenn das so auch geht, wäre das natürlich besser. :-)

Danke für die Info
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 12:00:11
Nee, das muss mit Version kleiner als 5.3 auch so und so gehen

Zitat... generell wird an mehr Stellen auf Version mind. 5.0 und in der Install Routine 5.1.2. geprüft, ...

LG
Titel: Re: Fehler in SpecialChars.php
Beitrag von: stefanbe am 14. Mai 2013, 12:36:19
habs mal geändert solte jetzt gehen betrieft die SearchClass.php und SpecialChars.php reicht wenn du die austauschst

lg stefanbe
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 13:06:36
hey, danke stefan!

PS: Gibt es einen speziellen Grund das die beiden callbacks im globalen scope sind, also ausserhalb der Klasse?
Titel: Re: Fehler in SpecialChars.php
Beitrag von: stefanbe am 14. Mai 2013, 13:26:17
preg_replace_callback ist doch nee function und inerhalb ner function hat mann nur zugrief auf sachen die inerhalb ersellt wurden oder global sind und functionen inerhalb einer classe sind nicht global.
es würde zwar die möglichkeit geben über $this da ran zu kommen aber auch da gibts unterschiede in den php 5 versionen.
so ist es halt einfacher :)

lg
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 13:44:56
Ich hätte auch in erster Linie an den Klasseninternen Zugriff mit $this gedacht, als Klassenmethode wäre die ja in der Klasse ja immer vorhanden, aber gut, mag sein das es da irgendwelche Unterschiede gibt, das sieht irgendwie so komisch aus  ;D  und von der Logik her gehört die Funktion ja definitiv (ale Methode) zur Klasse SpecialChars.

PS: die ander Variante wäre mit create_function() aber so als eigene Funktion ist es definiiv eifnacher nachzuvollziehen.

Titel: Re: Fehler in SpecialChars.php
Beitrag von: stefanbe am 14. Mai 2013, 14:12:21
kanst aber davon ausgehen das preg_replace_callback dann die create_function bei jedem einzelnen treffer ausführt.
was bei vielen treffern dann unnötige rechen zeit bräuchte

lg
Titel: Re: Fehler in SpecialChars.php
Beitrag von: hausl78 am 14. Mai 2013, 16:03:37
Ja, das glaub hab ich irgendwo gelesen.. wie gesagt.. ich wäre eh in erster Linie auf $this->callbackEncode..() ausgegangen, aber "gehen" tuts eh so auch ;-)

Titel: Re: Fehler in SpecialChars.php
Beitrag von: neo67 am 15. Mai 2013, 07:12:56
Ich wollte nur kurz Meldung erstatten, dass es jetzt wieder funktioniert auf einem PHP 5.2x Server. :-)

Dankschee
Jürgen