WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php string teilen (http://www.wcm.at/forum/showthread.php?t=78617)

pong 28.11.2002 11:05

php string teilen
 
Möchte aus dem Inhalt eines Textfeldes den ersten Absatz, sprich nach dem ersten Enter bzw DoppelEnter, das ding von anfang bis eben zu diesem Enter in ein eigenes Attribut in der Mysql db schreiben

Frage nur: wie geht das?

Alternativ: wie finde ich ein Enter aus einem BLOB datenfeld heraus und nehme diesen Absatz heraus?

pong

käptn 28.11.2002 11:23

PHP-Code:

//BREAK
$matched preg_match('/^(.*)$/m'$my_string$matched_line);
if (
$matched$first_line $matched_line[1];

//PARAGRAPH
$matched preg_match('/(.*)\r?\n\\s*\n/U'$my_string$matched_paragraph);
if (
$matched$first_paragraph $matched_paragraph[1]; 

ungetestet!

~

pong 28.11.2002 18:23

dankeschön, nur hab ich noch eine frage

könntest du mir die bedeutung der beiden zeichenfolgen
'/^(.*)$/m' und '/(.*)\r?\n\s*\n/U' erklären?

pong 28.11.2002 18:35

also funzen tuts, danke

da hab ich doch gleich noch ne 2te frage

nachdem preg_match einen teil rausnimmt, gibts ne möglichkeit an den string, ohne dass der schon herausgefilterte drinnsteht, ranzukommen?

käptn 28.11.2002 19:42

Zitat:

Original geschrieben von pong
dankeschön, nur hab ich noch eine frage

könntest du mir die bedeutung der beiden zeichenfolgen
'/^(.*)$/m' und '/(.*)\r?\n\s*\n/U' erklären?

1.)

/ Begrenzer für Regulären Ausdruck ->siehe unten
^ String-Beginn
( Gruppierung - 1. Klammerpaar $matches[1], 2. ...
. Beliebiges Zeichen außer \n (Newline)
* Quantifier (0 oder beliebig oft)
) Gruppierung schließen
$ String Ende
/ Begrenzer für Regulären Ausdruck
m Multiline-Modifier = alles bis zur nächsten Newline steht zwischen ^ und $


2.)

Code:

/    Delimiter - s.o.
(.*)  Gruppiert beliebige Zeichen, beliebig oft
\r?  Carriage return (CRLF) - ? = (k)einmal
\n    Linefeed (CRLF)
\s*  beliebig viele Whitespaces (Blanks, Newlines...)
\n    Zweites Linefeed
/    Delimiter - s.o.
U    Ungreedy-Modifier = d.h. der reguläre Ausdruch
      verhält sich nicht gierig, ansonsten
      würde er alles, was zwischen String Anfang
      und vor dem letzen Absatz liegt, matchen.

~

käptn 28.11.2002 19:57

Ich sag nur: "Ohne RegEx kein Proggen!" :D
Interessiert? http://at2.php.net/manual/de/ref.pcre.php


Zitat:

Original geschrieben von pong
nachdem preg_match einen teil rausnimmt, gibts ne möglichkeit an den string, ohne dass der schon herausgefilterte drinnsteht, ranzukommen?
Das musst du mir genauer erklären?!

~

pong 28.11.2002 20:40

Zitat:

Das musst du mir genauer erklären?!
ich hab jetzt den string bis zum ersten crlf rausgenommen, und jetzt möcht ich den rest irgendwie kriegen

käptn 28.11.2002 20:57

Aso, na dann müss ma anders an die erste Sache rangehen:
PHP-Code:

$matched preg_match('/([^\r\n]*)\r?\n(.*)/s'$str$m_r);

if(
$matched) {
  
$all $m_r[0];
  
$first_line $m_r[1];
  
$other_lines $m_r[2];


HTH

~

pong 28.11.2002 21:01

danke :)

hast mich vor einem seeeeeehhrrrrrrr langen wochenend gerettet

käptn 28.11.2002 22:33

prego ;)

~


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag