php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.04.2005, 09:40  
Erfahrener Benutzer
 
Registriert seit: 07.10.2003
Beiträge: 122
Mutatos
Standard preg_match() warning

Hallo zusammen, ich benutze das Highlighter.php von PHP::Pear, ich habe das bei mir local zum laufen gebracht, aber auf dem Server wo ich das hochlade, habe ich eine Warnung bekommen und zwar bei eine Funktion von PHP: preg_match()

Also diese Funktion bekommt als ersetes Parameter ein ganzgrosses Array, wie:

Zitat:
/((?m)^(#!)(.*))|((?m)^=\w+)|(\{)|(\()|(\[)|((use)\s+([\w:]*))|([& ](\w{2,}:+\w{2,})|((?Us)\b(q[wq]\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|((?Us)\b(q\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2)((\\.|[^\\])*?)(\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2[ecgimosx]*))|( \/)|(\$#?[1-9'`@!])|((?i)(\$#?|[@%*])([a-z1-9_]+:*([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)\$([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)(&|\w+)'[\w_']+\b)|((?i)(\{)([a-z1-9]+)(\}))|((?i)[\$@%]#?\{[a-z1-9]+\})|(`)|(')|(")|((?i)[a-z_]\w*)|(\d*\.?\d+)//((?m)^(#!)(.*))|((?m)^=\w+)|(\{)|(\()|(\[)|((use)\s+([\w:]*))|([& ](\w{2,}:+\w{2,})|((?Us)\b(q[wq]\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|((?Us)\b(q\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2)((\\.|[^\\])*?)(\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2[ecgimosx]*))|( \/)|(\$#?[1-9'`@!])|((?i)(\$#?|[@%*])([a-z1-9_]+:*([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)\$([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)(&|\w+)'[\w_']+\b)|((?i)(\{)([a-z1-9]+)(\}))|((?i)[\$@%]#?\{[a-z1-9]+\})|(`)|(')|(")|((?i)[a-z_]\w*)|(\d*\.?\d+)//((?m)^(#!)(.*))|((?m)^=\w+)|(\{)|(\()|(\[)|((use)\s+([\w:]*))|([& ](\w{2,}:+\w{2,})|((?Us)\b(q[wq]\s*((\{)|(\()|(\[)|(
und vieles mehr, aber aufe dem Server wird nicht alles angezeigt, sondern wird etwas abgeschnitten:

Zitat:
/((?m)^(#!)(.*))|((?m)^=\w+)|(\{)|(\()|(\[)|((use)\s+([\w:]*))|([& ](\w{2,}:+\w{2,})|((?Us)\b(q[wq]\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|((?Us)\b(q\s*((\{)|(\()|(\[)|(\<)|([\W\S])))(?=(.*)((?(3)\})(?(4)\))(?(5)\])(?(6)\>)(?(7)\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2)((\\.|[^\\])*?)(\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\;:'",.\/?]) ((\\.|[^\\])*?) (\2[ecgimosx]*))|( \/)|(\$#?[1-9'`@!])|((?i)(\$#?|[@%*])([a-z1-9_]+:*([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)\$([a-z1-9_]+|\^(?-i)[A-Z]?(?i)))|((?i)(&|\w+)'[\w_']+\b)|((?i)(\{)([a-z1-9]+)(\}))|((?i)[\$@%]#?\{[a-z1-9]+\})|(`)|(')|(")|((?i)[a-z_]\w*)|(\d*\.?\d+)/
Warning: Wrong parameter count for preg_match() ....
Wo ist hier der Fehler? Ich meine ist dieses Array zu groß? Kann man da etwas machen?

Ich bedanke mich!

Gruß
Nik
Mutatos ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.04.2005, 09:51  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich sehe hier keinen Array. Aber lass dir doch die Paramter zu preg_match() vor dem Aufruf mal ausgeben.
__________________
Gruss
L
lazydog ist offline  
Alt 27.04.2005, 09:53  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

und zeig vieleicht mal genau die zeile wo der fehlerauftritt
robo47 ist offline  
Alt 27.04.2005, 09:55  
Erfahrener Benutzer
 
Registriert seit: 07.10.2003
Beiträge: 122
Mutatos
Standard

Also de Aufruf ist folgender:

Code:
preg_match ($this->_regs[$this->_state], $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos);
Ich habe mich ein bisschen Schlau gemacht, und offensichtlich unterstützt meine PHP Version auf dem Server nicht das letzte Parameter:

Ich habe auf dem Server 4.3.1

So sieht der ganze Aufruf:


Code:
function _getToken()
    {
        if (!empty($this->_tokenStack)) {
            return array_pop($this->_tokenStack);
        }
        if ($this->_pos >= $this->_len) {
            return NULL;
        }

        if ($this->_state != -1 && preg_match($this->_endpattern, $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos)) {
            $endpos = $m[0][1];
            $endmatch = $m[0][0];
        } else {
            $endpos = -1;
        }
      
		preg_match ($this->_regs[$this->_state], $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos);
        $n = 1;
Und $m ist leer, oder kein Array!

Wie kann ich das jetzt lösen, ohne PHP zu updaten?

Danke!

Gruß
Nik
Mutatos ist offline  
Alt 27.04.2005, 10:16  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

$m wird erst von preg_match() gefüllt. Und eine Lösung ohne PHP-Update ist schwierig. Falls $this->pos 0 ist, kannst du es natürlich weglassen. Aber das dürfte ja kaum der Fall sein. Andernfalls musst du das Suchmuster entsprechend anpassen, was vermutlich nicht einfach ist.
__________________
Gruss
L
lazydog ist offline  
Alt 27.04.2005, 13:05  
Erfahrener Benutzer
 
Registriert seit: 07.10.2003
Beiträge: 122
Mutatos
Standard

Eigentlich ist $this->pos =0 fest definiert! Aber wenn ich das weglasse, dann dauert es ewig, bis ich die Seite sehe

Gruß
Nik
Mutatos ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Warning: fwrite() ??? Razoback PHP Tipps 2006 1 25.07.2006 21:37
Warning: fwrite(): supplied argument is not a valid stream Venom PHP Tipps 2007 27 15.12.2005 18:14
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Suche Programmierer, Designer, Schreiber... blinkster.de Beitragsarchiv 76 14.08.2005 18:31
Warning: pg_query(): Query failed: FEHLER Datenbanken 3 07.08.2005 21:17
Warning: main Habe noch ein Problem PHP Tipps 2005-2 5 04.08.2005 14:49
Warning: file_exists() [function.file-exists] PHP Tipps 2005-2 6 24.07.2005 01:22
[Erledigt] Warning: session_start(): Fehlermeldung nach Update.. Server, Hosting und Workstations 8 19.04.2005 17:00
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
frage zum arbeiten mit dateien PHP Tipps 2005 21 01.03.2005 13:22
[Erledigt] Warning: filemtime() [function.filemtime]: stat failed for PHP-Fortgeschrittene 12 25.02.2005 19:44
Counter zeigt nach ca. 2-3 Stunden fehler an PHP Tipps 2004 2 26.08.2004 20:08
warning zu einer SQL-Abfrage Datenbanken 3 14.07.2004 16:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_match() /\\b\\q, file exists pregmatch

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:58 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.