ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / PHP / MySQL Probleme / aus string -> text exthrahieren und als varibale speichern


Seite 1 von 1

Luki schrieb am 21.09.2003 um 22:07 Uhr

Hi,

1.) Ich möchte einem $string nach Begriffen wie "mp3" "wav" oder "vbs" durchsuchen lassen und falls z.B. "mp3" in dem String vorkommt MP3 aus dem String herauslöschen und in der $varibl dann MP3 (weil es rausgelöscht wurde) abspeichern.

$string = "Ich liebe MP3" //soll werden:
$string = "Ich liebe"
$yipi = "MP3"

klar mit if mp3 replace .. und var mp3 else if wav replace wav ... würde das gehen aber kann man das nicht irgendwie einfacher machen?

2.) Ich bekomme einen String mit zwei Wörtern oder Phrasen und möche diese nun aufsplitten sodaß ich danach 2 Strings $a und $b habe mit jeweils einem Wort drin also z.B.

$string = "Haus Baum" //soll werden:
$a = Haus
$b = Baum

oder
$string = "\"riesen Haus\" \"kleiner Baum\"" //soll werden:
$a = "riesen Haus"
$b = "kleiner Baum"

Hat hierfür jemand Tipps / Lösung?
Danke Danke Danke Lukas

theDon schrieb am 21.09.2003 um 22:16 Uhr

$t = "";
$string = "foo.mp3";

if($t = preg_match("/(mp3|wav|vbs)/i", $string))
{
  $string = str_replace($t, '', $string);
}

Luki schrieb am 22.09.2003 um 19:24 Uhr

:) danke schonmal allerdings ist $t in deinem Beispiel je nachdem ob es im String enthalten ist 1 oder 0 !! Im Beispiel sollte es allerdings möglichst "mp3" sein... !?

andere sache:
wie müsste man das formulieren damit alles hinter einem "." im String entfernt und als Variable gespeichert wird!?

wenn ich das schaffe kann ich hoffentlich einen kleinen Hack schreiben :)

theDon schrieb am 23.09.2003 um 20:26 Uhr

$var = preg_replace("/.*?\.(.*)/", '$1' $string);

Luki schrieb am 26.09.2003 um 16:05 Uhr

Göttlich klappt sehr gut! Danke Dir!

zu guter Letzt (dann hab ich's auch :) )

Ich bekomme geliefert:
$nr1 = "Huhn Baum";
^^ ein String mit 2 Wörtern drin und beliebig
vielen Leerzeichen zwischen den Wörtern
daraus soll werden
$nr2 = "Huhn";
$nr3 = "Baum";
^^ d.h. das ganze soll in 2 aufgesplittet werden

so und das ganze noch ein wenig komplexer:
Ich bekomme geliefert:
$nr1 = ' "Baum Haus" "riesen Huhn" ';
soll werden:
$nr2 = "Baum Haus";
$nr3 = "riesen Huhn";
d.h. das ganze zwischen den Anführungstrichen soll eins werden...
falls mehr als 4 Anführungsstriche in $nr1 enthalten sind soll es eine Meldung geben

theDon schrieb am 26.09.2003 um 17:06 Uhr

$var = "foo     bar";
$arr = preg_split("/\s/", $var);

$var = '"Baum Haus" "riesen Huhn"';
if(substr_count($var, '"') != 4)
{
die("err.");
}

$arr = preg_split("/(\"|((?<=\")\s(?=\")))/", $var, PREG_SPLIT_NO_EMPTY);

Luki schrieb am 26.09.2003 um 17:48 Uhr

preg_split("/(\"|((?<=\")\s(?=\")))/",...

wo finde ich bloß eine Anleitung für diese Krypto Suche ... durch lauter ((()()( & =?? steige ich einfach noch nicht durch, dafür ist mein Know How zu bescheiden.

leider bekomme ich bei deinem 2. Code immer noch den kompletten $var als Array... :?

Danke @Don, Du hast was gut bei mir! :)

theDon schrieb am 26.09.2003 um 18:07 Uhr

$var = '"Baum Haus" "riesen Huhn"';
if(substr_count($var, '"') != 4)
{
die("err.");
}

$arr = preg_split("/(\"|((?<=\")\s(?=\")))/", $var, -1, PREG_SPLIT_NO_EMPTY);

Luki schrieb am 26.09.2003 um 18:21 Uhr

Yipiii, jetzt steige ich durch :) - hab mir mal versucht das ganze zu erklären und eine Klammer nach der anderen entfernt! - und voila ich habe mal wieder eine Menge dazu gelernt! Klappt :)

$arr = preg_split("/\"|(?<=\")\s(?=\")/", $var, -1, PREG_SPLIT_NO_EMPTY);

Tausend x Danke!!! - was würde ich hier bloß ohne solche Helfer machen? :)

theDon schrieb am 26.09.2003 um 18:52 Uhr

jaja, sind nen paar überflüssige klammern dabei, aber ich find das übersichtlicher, wenn man nen editor hat, der matching brace highlighting kann.

Luki schrieb am 26.09.2003 um 19:15 Uhr

grrr hänge schon wieder fest:

Ich möchte aus meinem String die Wörter zählen...

echo count(explode(" ",$string));

geht nicht weil ja auch mehr Leerzeichen dazwischen sein können...

und http://de.php.net/manual/de/function.str-word-count.php ist leider erst ab > 4.3.0

muss ich also erst alle Leerzeichen in einer Schleife entfernen?

Welchen Editor verwendest du?

theDon schrieb am 26.09.2003 um 19:29 Uhr

echo count(preg_split("/\s/+", $string, -1, PREG_SPLIT_NO_EMPTY);

ich nehm xemacs. (auf die gefahr hin, mal wieder nen heiligen editor-krieg loszubrechen o_O)

Seite 1 von 1