php kérdés

Udv!

adott egy string ami így néz ki:

string=<***>ez egy adat<****><****>ez is egy adat<****>

namost nekem ebből a stringből kellene az "ez egy adat" ill. "ez is egy adat", tehát valahogy a határoló tagg-ek közül kellene nekem a tartalom, de ráadásul úgy hogy a határoló taggeket csak a "<>" alapján vegye figyelembe "<***ez itt wildcard***>",a <> közötti rész lényegtelen. Ez a formátum egy régi adatbázis fájlban van amit át kellene rakni máshova. Na nem tudom mennyire vagyok érthető ebben kellene valami kis kiindulási alap, azt sejtem, hogy mindenféle egrep pregmatch játék lesz.

Ja a lényeg majdnem kimaradt, mindezt php alatt szeretném elkövetni.

Hozzászólások

Van egy csomó sztring függvény, pl: strstr(), strpos(), meg mások is.
Nézz utána mire valók! http://www.php.net/manual/hu/ref.strings.php
Esetleg itt egy puska jellegű, de nem igazán részletes táblázat is: http://www.opendir.hu/?freedom=/tartalom/php/php_array,_string_cheatshe…

PS:A fájlkezelő rész is kellene?
--
не закурить! (Ne gyújts rá!) не куриться! (Ne dohányozz! Ne füstölögj!)

köszi de nem, addig már eljutottam, hogy soronként olvasgatom a stringbe a fájl tartalmát.

itt a kód ha valakinek érdekes...

<?php
$x=0;
$fileforopen="data.file";
if(file_exists($fileforopen) {
while(!feof($file)) {
$file=fopen("$fileforopen","r");
$string=fgets($file);
$x++;
};
} else { echo "Szar van a palacsintában:)))"; };
fclose($file);
?>

Helló!

Szerintem reguláris kifejezéseket kellene használnod a preg_match_all() függvénnyel.
De használhatod az strpos() vagy az stripos() függvényt is. De akkor szükség lesz a substr()-re is.

php.net/preg_match_all

es gratulalok a cimvalasztashoz!

t

ok, köszi az infókat megpróbálom...

Egy rákot, kollégák... A topiknyitó evidens, hogy a html tagektől akar megszabadulni. Hát erre van a strip_tags($sztring), kérem szépen.
Ha nem lenne ez jó, akkor a preg_replace('@<[\/\!]*?[^<>]*?>@si','',$sztring) is megteszi.

--
Coding for fun. ;)

írsz egy ciklust, ami egy üres tömbbel indul, karakterről-karakterre elemzi a stringet, a tagek között karakterről-karakterre másolja a stringet, és amikor újabb tag jön, akkor belerakja az addig lemásolt részt a tömb következő indexébe

--
The Net is indeed vast and infinite...
http://gablog.eu

Na, még egyszer, ezúttal függvénnyé alakítva a dolgot:


$sztring = '<b>Bold</b><div style='valami'>div volt</div>';
$szoveghatar = "|";

print_r(html2array($sztring,$szoveghatar));
exit;

function html2array($sztring,$szoveghatar) 
{

	$elokeszit = preg_replace('@<[\/\!]*?[^<>]*?>@si',$szoveghatar,$sztring);
	//****** Kiküszöböljük a halmozott határokat
	$sztring = preg_replace("@[$szoveghatar]+@si",$szoveghatar, $elokeszit);
	$tomb = explode( $szoveghatar,trim($sztring,$szoveghatar));
	return $tomb;
}

--
Coding for fun. ;)