Newsgroup: it.comp.www.php
Titolo: Estrazione stringhe da file ascii

Ciao; io avrei un db in formato ascii tipo quello riportato sotto; se io passo
attraverso la form il titolo della definizione (dove titolo per esempio č
"Bachelard Gaston" e la definizione tutto il testo indentato) come faccio a
selezionare in una variabile (da manipolare poi) solo e solo la definizione che
sto cercando?
Grazie di cuore a chiunque mi aiuti!
Daniele
Bachelard Gaston
	<history of philosophy, biography> french {philosopher of science}
	(1884-1962);
	author of Psychoanalyse du feu (Psychoanalysis of Fire) (1937),
	Le nouvel esprit scientifique (The New Scientific Spirit) (1934),
	and L'Actualitič de l'histoire des sciences (History of Science)
	(1951). Rejecting both naive {realism} and absolute {idealism},
	{Bachelard} maintained that {scientific knowledge} emerges from
	an imaginative interaction between the {mind} and
	{experimental evidence}. His emphasis on {discontinuity} in the
	progress of {science} anticipated portions of the work of Thomas
	{Kuhn}.
	Recommended Reading: Mary Tiles, Bachelard: Science and
	Objectivity (Cambridge, 1985).
	[{A Dictionary of Philosophical Terms and Names}]
	<2001-09-28>
Bacon Francis
	<history of philosophy, biography> english {politician} and
	{philosopher} (1561-1626).
	{Bacon} became Lord Chancellor of England in 1618,
	but was driven immediately from office under charges of official
	corruption. As an early {empiricist}, he rejected scholastic
	accounts of the natural world in favor of a new method for
	achieving {knowledge}, based exclusively on careful {observation}
	and cautious {induction}, which he described in The Advancement
	of Learning (1605) and Novum Organum ( New Organon) (1620).
	{Bacon} warned that effective {reasoning} must be freed from
	the "idolatrous" influence of personal interest, {human nature},
	social conventions, and {academic philosophy}. In The New
	Atlantis (1626), {Bacon} described the far-reaching social
	consequences of his {epistemological program}. {Bacon}'s Essays
	(1601) address the whole range of his philosophical and social
	interests.
	Recommended Reading: Selected Philosophical Works, ed. by
	Rose-Mary Sargent (Hackett, 1999); The Cambridge Companion to
	Bacon, ed. by Markku Peltonen (Cambridge, 1996); and Stephen
	Gaukroger, Francis Bacon and the Transformation of Early Modern
	Philosophy (Cambridge, 2001).
	[{A Dictionary of Philosophical Terms and Names}]
	<2001-09-28>
-- 
Posted from 
ppp-60-100.25-151.libero.it
 [151.25.100.60] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 <history of philosophy, biography> english {politician} and
Se il testo della definizione e veramente indentato e' abbastanza semplice.
Il tuo parser si trova in due stati:
$indent=1; o $indent=0;
$indent=0;
$definizione[0]="";
$titolo[0]="";
$cnt=0;
Leggi il file riga per riga.
$line=fgets($fp,1000);
se trovi una riga con l'indent  ($line{0}='\t')(TAB) metti il flag
$indent=1;
se il flag cambia da $indent=1; a $indent=0 aumenti il contattore $cnt
(nuovo campo).
switch($indent)
{
    // se il flag $indent e uno lo aggiungi la riga ad una buffer se no
all'altro
    case 0: $titolo[$cnt].= $line; break;
    case 1: $definizione[$cnt].= $line; break;
}
Alla fine hai due array nei quali puoi cercare quello che serve...
Se non e' cosi indentato bisogna fare piu sforzo e cercare di capire la
struttura del testo ascii (ci sono ad esempio le date con <2001-09-28> che
potresti sfruttare) ed usare una espressione regolare...

Grazie di cuore a chiunque mi aiuti!
$found = 0;
$answer= "";
$fp = fopen("database.txt", "r");
while (!feof($fp))
{
	$riga = fgets($fp, 1024);
	if ($found)
	{
		if ($riga[0]=="\t")
			break;
		$answer .= $riga;
	}
	else
		if ($riga == $question)
			$found++;
}
@fclose($fp);
if ($found)
	print "Trovato: $answer";
else
	print "Non trovato."
Poi, "$answer" puoi sottoporlo ad interessanti trasformazioni regexp, in
modo da aggiungere HREFs. Qui sotto per esempio, a "realism", "idealism"
e quant'altro. Ti servira' preg_replace.
Leonardo
-- 
And where the black and corkscrew towers climb
Lost and athirst the ragged pack abides,
Old as the aeons, trapped in tombs of time,
Sailing the tortuous temporal tides...