preg_match() Error

Alles, was PHP betrifft, kann hier besprochen werden.

preg_match() Error

Postby EliteGroup » 31. August 2013 20:16

Hi,
Ich hoffe jemand kann mir helfen. Ich möchte auf meinen server Roundcube 0.9.3 Installieren leider gibt es immer die fehlermeldung:
"Warning: preg_match() [function.preg-match]: Compilation failed: unknown property name after \P or \p at offset 43 in C:\xampp\htdocs\domainnoipbiz\webmail\program\lib\Roundcube\bootstrap.php on line 90"

Der Betreffende Code:
Code: Select all
if (!preg_match("!(^|$sep)$rcube_include_path($sep|\$)!", ini_get('include_path'))) {
    set_include_path(ini_get('include_path') . PATH_SEPARATOR . $rcube_include_path);
}


Ich verwende XAMPP 1.7.7 auf Windows XP

Ich schätze etwas in der php.ini gehört geändert auf meinen Server auf World4You kommt diese fehlermeldung nicht bei PHP 5.3, woran kann das liegen bei XAMPP?
EliteGroup
 
Posts: 4
Joined: 30. August 2013 23:34
Operating System: openSUSE 12.3

Re: preg_match() Error

Postby Nobbie » 31. August 2013 20:28

EliteGroup wrote:Ich schätze etwas in der php.ini gehört geändert auf meinen Server auf World4You kommt diese fehlermeldung nicht bei PHP 5.3, woran kann das liegen bei XAMPP?


Da schätzt Du völlig falsch und mit Xampp hat das sowieso nichts zu tun, allenfalls mit Kompatibilitätsproblemen zwischen Roundcube und PHP Version irgendetwas. Ich persönlich würde dann bei Roundcube anfragen - es ist doch deren Script!?
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: preg_match() Error

Postby EliteGroup » 01. September 2013 00:57

Nobbie wrote:Da schätzt Du völlig falsch und mit Xampp hat das sowieso nichts zu tun, allenfalls mit Kompatibilitätsproblemen zwischen Roundcube und PHP Version irgendetwas. Ich persönlich würde dann bei Roundcube anfragen - es ist doch deren Script!?


Nein ich verwende die empfohlene PHP version. Am World4You Server funktioniert es einwandfrei. Das Problem ist bei allen XAMPP versionen. Deren Script funktioniert supper halt nicht auf XAMPP. Mit dieser Antwort hab ich leider immer noch keine Lösung da das Script trotzdem korrekt ist und einwandfrei funktioniert, umgehen möchte ich auch nicht das problem, lieber möchte ich es in der XAMPP/PHP konfig lösen.
EliteGroup
 
Posts: 4
Joined: 30. August 2013 23:34
Operating System: openSUSE 12.3

Re: preg_match() Error

Postby Altrea » 01. September 2013 04:00

EliteGroup wrote:Das Problem ist bei allen XAMPP versionen. Deren Script funktioniert supper halt nicht auf XAMPP.

Wenn man keine Ahnung hat, sollte man zumindest denen zuhören, die mehr Ahnung haben.
http://trac.roundcube.net/ticket/1489290
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8294
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: preg_match() Error

Postby Nobbie » 01. September 2013 10:04



Witzig - genau das war meine erste Idee - der Directory Limiter "\" unter Windows, der hier nicht escaped wird. Peinlicher Fehler in Roundcube, sowas darf nicht passieren.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: preg_match() Error

Postby Nobbie » 01. September 2013 10:10

EliteGroup wrote:Am World4You Server funktioniert es einwandfrei.


Weil das mit einiger Sicherheit kein Windows Rechner ist. Der Fehler liegt zwar (wie gesagt) bei Roundcube, aber Du kannst ja zu Hause auch Xampp unter Linux installieren, dann läuft es auch bei Dir zu Hause.

Da ich nicht glaube, dass Du das Problem verstehst, erkläre ich es Dir:

In der preg_match() Expression steht ein sog. "Include-Path" drin. Das ist ein Pfadname. Unter Linux sehen die so aus (Beispielsweise): /var/lib/include oder ähnlich. Unter Windows sehen die aber so aus: C:\Programme\irgendwas

Und hinter dem "C:" steht das "P" von "Programme" und davor der Directory Trenner (Backslash). Das ist insgesamt diese Zeichenkette "\P" - und die hat bei preg_match() eine Sonderfunktion (dazu müßtest Du mal das Manual über regular Expressions lesen), das ist natürlich ungewollt und insgesamt ist das an dieser Stelle syntaktisch falsch. Und das ist die Fehlermeldung, die Du bekommst. Hat mit Xampp Nullkommanull zu tun.

Die Lösung besteht darin, den include Path zu "escapen" (das bedeutet. dass man vor dem Backslash einen weiteren Backslash macht, denn Backslashs haben eine Sonderbedeutung für preg_match()). Das ist aber die Aufgabe von Roundcube. Statt hier also so peinlich zu schlaumicheln, hättest Du längst bei Roundcube fragen können, ob es einen Fix gibt.
Nobbie
 
Posts: 8775
Joined: 09. March 2008 13:04

Re: preg_match() Error

Postby EliteGroup » 02. September 2013 04:14

Nobbie wrote:Weil das mit einiger Sicherheit kein Windows Rechner ist. Der Fehler liegt zwar (wie gesagt) bei Roundcube, aber Du kannst ja zu Hause auch Xampp unter Linux installieren, dann läuft es auch bei Dir zu Hause.

Da ich nicht glaube, dass Du das Problem verstehst, erkläre ich es Dir:

In der preg_match() Expression steht ein sog. "Include-Path" drin. Das ist ein Pfadname. Unter Linux sehen die so aus (Beispielsweise): /var/lib/include oder ähnlich. Unter Windows sehen die aber so aus: C:\Programme\irgendwas

Und hinter dem "C:" steht das "P" von "Programme" und davor der Directory Trenner (Backslash). Das ist insgesamt diese Zeichenkette "\P" - und die hat bei preg_match() eine Sonderfunktion (dazu müßtest Du mal das Manual über regular Expressions lesen), das ist natürlich ungewollt und insgesamt ist das an dieser Stelle syntaktisch falsch. Und das ist die Fehlermeldung, die Du bekommst. Hat mit Xampp Nullkommanull zu tun.

Die Lösung besteht darin, den include Path zu "escapen" (das bedeutet. dass man vor dem Backslash einen weiteren Backslash macht, denn Backslashs haben eine Sonderbedeutung für preg_match()). Das ist aber die Aufgabe von Roundcube. Statt hier also so peinlich zu schlaumicheln, hättest Du längst bei Roundcube fragen können, ob es einen Fix gibt.


Ok Danke für deine ausführliche erklärung nun versteh ich das Problem. Ich wollte nicht unhöflich sein mit meiner antwort. :wink: Ich hab es einfach nur nicht verstanden da ich die settings identisch gehalten habe als einziges der server ist auf Linux meiner auf Windows das es da auch Programmiertechnische unterschiede gibt wuste ich bis jetzt nicht
EliteGroup
 
Posts: 4
Joined: 30. August 2013 23:34
Operating System: openSUSE 12.3


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests