php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2005, 15:11  
Neuer Benutzer
 
Registriert seit: 01.10.2005
Beiträge: 7
FI-DD
Standard preg_replace: Zahl anstatt String

Hallo Leute,

ich habe folgenden Tag:

{tag:X}

X soll dabei eine beliebige Zahl darstellen.

Jetzt möchte ich diesen Tag ersetzen.

Folgendes habe ich probiert.

Code:
$output = preg_replace('/{tag:(.*?)}/', meine_funktion($parameter1, "\\1"), $output);
Das Problem: meine_funktion() erwartet als zweiten Parameter eine Zahl (double laut Fehlermeldung) und keinen String. (Der zweite Parameter stellt einen Divisor dar.)

Wie kann ich den String in eine Zahl umwandeln?

Oder wie kann ich den Tag ersetzen, so daß gleich eine Zahl und kein String zurückgegeben wird?

Wäre nett, wenn mir jemand auf die Sprünge helfen kann.

Danke Euch.
FI-DD ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.10.2005, 15:57  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

der fehler liegt an einer anderen stelle. du willst wohl das gefundene subpattern an die funktion übergeben, und dann durch den outptut der funktion ersetzen? dann benötigst du modifier e und mußt deinen ersatz-string noch verändern.

im moment übergibst du nämlich den string "\\1" (und nicht die backref) an die funktion - klar, daß da ein fehler kommt.

irgendwie so:
PHP-Code:
$output preg_replace('#\{tag:(.*)\}#Ue''meine_funktion('.$parameter1.', \1)'$output); 
wie gesagt, schau dir das manual zu preg_replace an, dort findest du was über modifier e. dein ersatzstring muß so formuliert sein, daß er sich per eval() ausführen ließe.
__________________
derHund ist offline   Mit Zitat antworten
Alt 01.10.2005, 16:32  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Soweit ich weiß ist \\1 vollkommen korrekt - Entwerder \\x oder $x kann als Backreference übergeben werden.
Zitat:
Wie kann ich den String in eine Zahl umwandeln?
PHP-Code:
<?php
$string 
'12345';

// Entweder..
$newstring = (int)$string;

// .. oder
$newstring intval($string);
?>
Chr!s ist offline   Mit Zitat antworten
Alt 01.10.2005, 18:46  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.783
derHund
Standard

Zitat:
Zitat von Chr!s
Soweit ich weiß ist \\1 vollkommen korrekt - Entwerder \\x oder $x kann als Backreference übergeben werden.
in diesem fall aber nicht, da mit der backref eine funktion gefüttert werden soll, deren output als ersatz herhalten soll.

auch du kannst dir gerne den entsprechenden abschnitt im manual dazu anschauen.

es geht hier auch nicht um das wandeln eines strings in eine zahl - das problem ist ein ganz anderes (s.o.). es wird niemals die zahl an die funktion übergeben, sondern der string "\\1", da die funktion in der momentanen definition erst ausgeführt wird, bevor überhaupt backrefs bestimmt werden, eine ersetzung durchgeführt wird.
__________________
derHund ist offline   Mit Zitat antworten
Alt 02.10.2005, 14:50  
Neuer Benutzer
 
Registriert seit: 01.10.2005
Beiträge: 7
FI-DD
Standard

Zitat:
Zitat von derHund
irgendwie so:
PHP-Code:
$output preg_replace('#\{tag:(.*)\}#Ue''meine_funktion('.$parameter1.', \1)'$output); 
Ich habe es zwar nicht ganz verstanden (auch nach dem Lesen im manual), aber dieser Code funktioniert perfekt.

Vielen Dank.
FI-DD ist offline   Mit Zitat antworten
Antwort


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
Zahl aus String extrahieren GSJLink PHP Tipps 2008 5 13.01.2008 19:13
Event abfangen Ambience JavaScript, Ajax und mehr 4 30.08.2007 14:36
string auf bestehen �berpr�fen und so lange zahl anh�n Promaetheus PHP Tipps 2006 10 26.04.2006 23:05
Prüfen ob Zahl in String vorhanden ist PHP Tipps 2005-2 9 07.09.2005 11:32
String in allen Spalten suchen Jacks Rache Datenbanken 0 05.08.2005 09:43
zahl ausgeben wenn gerade Tschuu PHP Tipps 2005-2 6 07.07.2005 19:20
[JS] Regex: Zahl aus String auslesen [gelöst] freq.9 HTML, Usability und Barrierefreiheit 3 27.06.2005 12:02
Prüfung auf Zahl, Wert in PHP? PHP Tipps 2005-2 1 07.06.2005 10:32
string -> int, nur wenn string zahl ist PHP Tipps 2005-2 3 06.06.2005 12:33
[Erledigt] String in Zahl umwandeln PHP Tipps 2005 1 12.05.2005 11:39
String nach jeder Zahl teilen yoshy PHP Tipps 2005 8 04.05.2005 03:28
[Erledigt] Sortierung nach Zahl in einem String Datenbanken 2 02.05.2005 16:01
where string von einer funktion zu anderen transportieren PHP Tipps 2005 5 03.03.2005 16:29
String auf bestimmte Breite (Pixel) kuerzen... mudo PHP-Fortgeschrittene 25 28.01.2005 19:07
String mit Leerzeichen auffüllen HTML, Usability und Barrierefreiheit 2 27.10.2004 18:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
preg_replace zahlen, str_replace zahlen, php preg_replace zahlen, preg_replace int, preg_replace integer, php verfügbar statt anzahl, preg_replace zahl, php str_replace zahlen, preg_replace php, http://www.php.de/php-fortgeschrittene/31728-preg_replace-zahl-anstatt-string.html, str_replace nur zahlen extrahieren, php preg_replace interger bei übergabe, eregi_replace zahl, php preg_replace double, preg_replace zahlen extrahieren, preg_replace zahl aus text, string to int preg_replace, str_replace mit zahlen, zahlen string ersetzen php, zahlen nach string ersetzen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 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.