"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP: S: Beispiele für "stringbasteleien"

semteX 09.09.2004 - 13:17 1180 19
Posts

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
ich würd ein beispiel suchn für herumbasteln an strings. also z.b. wenn ich hab

"Überschrift: blahr Text: you are sick in your brain!"

dass ich mir das "blahr" und "you are.." in eigene variablen "rausholen"
kann...

danke

tschüss
Bearbeitet von semteX am 09.09.2004, 17:53

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2689
bestimmte programmiersprache?

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
wenns in VB is dann:
Code:
str$ = "Überschrift: blahr Text: you are sick in your brain!"
blahrstr$ = mid$(str$, 13, 5) ' "blahr"
youstr$ = mid$(str$, 24, 7)   ' "you are"
Die Postionen musst ggf. ändern

In C++:
Code:
#include <string>   // Stringklasse implementieren
...
string Mid(string *str,   // Zeiger auf Input-String
           long start_pos, // Die Startposition im string
           long length )  
{
     string retText;
     
     retText.insert(0, &str, start_pos, length);
               // Hier wird der Teilstring hinzugefügt.

     return retText;  // und gibt den Text zurück
}

Du kannst die Funktion Mid() dann so aufrufen (wie oben):
Code:
string text("Überschrift: blahr Text: you are sick in your brain!");
    // dein Text als string-objekt

string blahrstr = Mid(&Text, 13, 5); // "Blahr"
string youstr = Mid(&Text, 24, 7); // "you are"

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794
Zitat von Geigerzeiger
Zitat von h4p3
FireFox ist der aergere pr0n Leecher :eek: - Download all Feature 0wnt :eek:

die absoluten positionen sind halt eher ungünstig.

ich würd (wenns VB ist) mit inStr() nach dem ersten vorkommen von "Überschrift:" suchen und nach dem ersten vorkommen von "Text:" suchen - damit hast schon mal recht gute anhaltspunkte, wo dein gesuchter text im string überhaupt steht.

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
shit! tut mir sehr leid

sprache ist PHP

xcc

Big d00d
Avatar
Registered: Jun 2002
Location: nähe Salzburg
Posts: 157
http://at.php.net

http://at.php.net/manual/de/function.stripos.php

hier hast du alle Stringbefehle untereinander (links)

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
ganz einfach :

Code: PHP
$text = "Überschrift: blahr Text: you are sick in your brain!";
$rest = substr($text, 13, 5);  // ergibt "blahr"
.....

In der Funktion substr() musst du zu einem den String angeben den du zerlegen möchtest, dann die Position wo er den teilstr herausnehmen muss, und der andere parameter sthet für die Länge die der teilstr haben soll.

Phobos

&#10013;
Avatar
Registered: Jan 2003
Location: 1050
Posts: 2111
Zitat von Geigerzeiger
ganz einfach :

Code: PHP
$text = "Überschrift: blahr Text: you are sick in your brain!";
$rest = substr($text, 13, 5);  // ergibt "blahr"
.....

In der Funktion substr() musst du zu einem den String angeben den du zerlegen möchtest, dann die Position wo er den teilstr herausnehmen muss, und der andere parameter sthet für die Länge die der teilstr haben soll.

das impliziert das die gewünschten teile immer an der gleichen stelle stehen und gleich lang sind, oder es werden nur teile des textes oder der wörter in die string geschrieben, ich glaub du missverstehst den SEHMTEKS ein bissl :D

Geigerzeiger

Addicted
Registered: Jan 2004
Location: anywhere
Posts: 449
Zitat von semteX
ich würd ein beispiel suchn für herumbasteln an strings. also z.b. wenn ich hab

"Überschrift: blahr Text: you are sick in your brain!"

dass ich mir das "blahr" und "you are.." in eigene variablen "rausholen"
kann...

danke

tschüss

diese funktion holt sich ja das "blahr", usw. = Teilstring in eigene variablen . steht ja hier.

Zitat von Phobos
das impliziert das die gewünschten teile immer an der gleichen stelle stehen und gleich lang sind, oder es werden nur teile des textes oder der wörter in die string geschrieben, ich glaub du missverstehst den SEHMTEKS ein bissl :D

:bash:

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14594
danke schonmal alle!


das problem ist, dass die strings natürlich nie gleich sind (eh klar, sonst könnt ich das zeug gleich rausspeichern ;))

wie geh ich nach der suche von dem "space" am bsten vor?

ich könnt mir ja die posi von Überschrift und Text suchen und alles dazwischen rausspeichern..?

danke
Bearbeitet von semteX am 09.09.2004, 18:42

Phobos

&#10013;
Avatar
Registered: Jan 2003
Location: 1050
Posts: 2111
Zitat von Geigerzeiger
:bash:

aha, was hab ich den falsches gesagt? :confused:

@klaus, sind regexp keine lösung? haben die überschriften ein gewisses system?

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794
Zitat von semteX
wie geh ich nach der suche von dem "space" am bsten vor?

steht eh schon alles da.

http://at.php.net/manual/de/function.stripos.php

-> suche nach erstem auftreten von string "Überschrift:", suche nach erstem, auftreten von string "Text:"

alles zwischen "erstem auftreten von 'überschrift:' + length('überschrift:')" bis "erstem auftreten von 'text:' -1" ist deine überschrift. alles von "erstem auftreten von 'text:'+ length('text:')" bis ende vom string ist der text.

dio

Here to stay
Registered: Nov 2002
Location: Graz
Posts: 4881
Zitat von Geigerzeiger
diese funktion holt sich ja das "blahr", usw. = Teilstring in eigene variablen . steht ja hier.



:bash:
R E G U L A R E X P R E S S I O N S
klingelt's? bei dir müsste man bashen.
@sem: ich schau, ob ich noch ein paar skripte mit regex hab, zum anschaun :)
Bearbeitet von dio am 09.09.2004, 21:05

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von diokletian
R E G U L A R E X P R E S S I O N S
klingelt's? bei dir müsste man bashen.
@sem: ich schau, ob ich noch ein paar skripte mit regex hab, zum anschaun :)
da muss ich dir (einmal) rechtgeben... :p

beispiel:
preg_match("/^Überschrift: (.*)Text: (.*)$/",$str_suche,$arr_ergebnisse)

reference:
Function PREG_MATCH
PCRE-Syntax
PCRE-Pattern Modifiers

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794
Zitat von watchout
da muss ich dir (einmal) rechtgeben... :p

beispiel:
preg_match("/^Überschrift: (.*)Text: (.*)$/",$str_suche,$arr_ergebnisse)

reference:
Function PREG_MATCH
PCRE-Syntax
PCRE-Pattern Modifiers

yo, das ist halt l33t style php-regexp-0wnage :cool:

mein ansatz geht dafür in allen gängigen programmiersprachen. :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz