Ich versuche, alle Tags in einer Datei wie {{name:something}}
zu bestimmten Werten zu ersetzen. Beachten Sie, dass in {{name::something}}
nur etwas könnte Warry. Wie {{name:title}}
oder {{name:content}}
. Dieser "Name" wird immer da sein.php Pattern Matching für benutzerdefinierte Tags
Wie auch immer, Ich habe preg_match_all und preg_replace, es hat alles geklappt. Ich fand die Spiele mit diesem regulären Ausdruck: $patmatch="/{{name:[a-zA-Z0-9._-]+}}/";
Mein Problem ist folgendes:
Wenn ein Tag wie folgt dem Muster nicht übereinstimmen (es hat einen Syntaxfehler), wie {{notname:something}}
oder {{name something}}
oder {{ }}
Ich muss eine Ausnahme werfen. Woher weiß ich, ob der Tag da ist, aber mit einem Syntaxfehler?
Kann ich irgendwie ein anderes Muster Suche machen zu überprüfen, ob es ein Tag ist (zwischen {{
und }}
), und wenn es {{name:something}}
nicht wie das?
Jede Hilfe wäre willkommen, Vielen Dank!
Nun, fast. Sie sehen, die preg_match_all() Funktion wird mir nur die richtigen Treffer bringen. Die richtig formatierten Texte. Aber ich muss auch die falschen finden und eine Ausnahme auslösen, wenn ich welche finde. – Darksody
Vielen Dank, ich habe das Problem mit NFLineastidee gelöst. Ich preg_match_all() nur auf jedem $ patmatch = "/ {{a-zA-Z0-9.:_-]+}}/"; (im Grunde alle {{}}) und dann überprüfe ich einfach, ob (strpos ($ text, '{{name:') === false) wie NFLineast sagte. Danke nochmal, alle deine Lösungen sind gut, ich werde die anderen auch versuchen, denke ich :) Darksody. – Darksody
Ausgezeichnet. strpos() ist auch weniger ressourcenhungrig als preg_match() ... :) – NFLineast