php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.08.2004, 18:15  
Gast
 
Beiträge: n/a
Standard [Erledigt] regex problem

hi zusammen
ich würde gerne aus so einem string:

"bla bla bla [id=33453] bla bla bla"

nur die zahl nach id auslesen und in einer variable speichern.

die variable müsste also nur den inhalt "33453" haben...

wie ist das möglich?

vielen dank für eure hilfe...
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.08.2004, 18:37  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

PHP-Code:
<?
$text
="bla bla bla [id=33453] bla bla bla";
$id=preg_replace("/.*\[id=(\d+)\].*/","\$1",$text);
echo 
$id;
?>
DiBo33 ist offline  
Alt 30.08.2004, 18:48  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
<?php

    $text 
'bla bla bla [id=33453] bla bla bla';    
    
    
$start strpos($text,"=") + 1;
    
$length strpos($text,"]") - $start;
    
    
$var substr($text,$start,$length);
    
    echo 
$var;

?>
für dein beispiel geht das so.
imported_Ben ist offline  
Alt 30.08.2004, 19:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
PHP-Code:
<?php

    $text 
'bla bla bla [id=33453] bla bla bla';    
    
    
$start strpos($text,"=") + 1;
    
$length strpos($text,"]") - $start;
    
    
$var substr($text,$start,$length);
    
    echo 
$var;

?>
Das ist nicht so ideal! DiBo33's Beispiel ist besser!
hier ließt er nur bis ende der eckigen Klammer ] aus.
Was ist wenn also jetzt [id=3794]4345] steht?
Man kann ja den DAUs nich trauen...
 
Alt 30.08.2004, 19:12  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Ben
für dein beispiel geht das so.
habe ich andere fälle angesprochen?

antwort: nein!
imported_Ben ist offline  
Alt 30.08.2004, 19:20  
Gast
 
Beiträge: n/a
Standard

Dem Titel dieses Thread zu folge wolte er aber eine regex Lösung!
 
Alt 30.08.2004, 19:38  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Du-weisst-schon-wer
Dem Titel dieses Thread zu folge wolte er aber eine regex Lösung!
wo steht das?

da steht regEx problem, also schloss ich daraus, dass er denkt, dass man diese sache mittels regEx lösen kann, es aber nicht selbst kann.

da es aber auch ohne reguläre ausdrücke geht, wie meinem bsp. ja zu entnehmen ist habe ich ihm diese (viel schnellere) lösung gegeben.

und wie ich schrieb ist es die lösung für sein beispiel und nichts anderes.
wenn noch andere fälle auftreten können, dann hätte das im eingangsposting stehen sollen.

aber weil ich keine lust hab mit dir darüber zu diskutieren.
ja du hast recht.
imported_Ben ist offline  
Alt 31.08.2004, 10:15  
Gast
 
Beiträge: n/a
Standard

so leute, keinen streit wegen mir!

ich danke allen für ihre antworten, ihr habt mir sehr geholfen...
 
Alt 04.09.2004, 13:35  
Gast
 
Beiträge: n/a
Standard

@DiBo33: danke für deine lösung, habe es nun so gemacht, geht super!

aber ich habe noch ein kleines problem:

wenn nun der string nicht vorkommt im text, dann bekomme ich in $id den ganzen text zurück. wie kann ich das verhindern? oder wie finde ich dann wenigstens raus das ein string dieser art nicht vorkommt im text? (weil auf leerstring "" kann ich ja nicht abfragen).

vielen dank für deine unterstützung...
 
Alt 04.09.2004, 16:46  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Du kannst das mit preg_match() prüfen.
Code:
$text = "bla bla bla [id=33453] bla bla bla";
if (preg_match("/.*\[id=(\d+)\].*/", $text))
 {
  echo "ist drin";
 }
 else
 {
  echo "nicht drin";
 }
mfg RUdiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS 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
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit dem Escapen in einem reg. Ausdruck ??? Frank Burian HTML, Usability und Barrierefreiheit 4 07.07.2006 00:02
Problem mit regex BLiNK PHP Tipps 2006 19 25.03.2006 13:32
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit zu langen String -> regex PHP Tipps 2006 1 25.01.2006 17:38
[Erledigt] Problem mit einem Regex PHP-Fortgeschrittene 4 23.01.2006 09:34
[Erledigt] Regex Problem. PHP Tipps 2007 14 07.11.2005 15:24
komplexeres Regex Problem Schaelle PHP Tipps 2005-2 14 29.08.2005 20:21
Problem mit RegEx freq.9 PHP Tipps 2005-2 3 29.08.2005 13:32
Regex Problem PHP Tipps 2005-2 8 14.08.2005 18:40
Problem mit regex PHP Tipps 2004 1 09.09.2004 10:00
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit eine REGEX! PHP-Fortgeschrittene 7 04.06.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
${text:start:length}

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:43 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.