Newsgroup: it.comp.www.php
Titolo: Estrarre il contenuto del title

Devo realizzare uno script php che mi apra un file ed estragga il
contenuto del tag title, cioe' <title>questo</title>. Sapete dirmi come
fare?
Grazie
Carlo
-- 
Bologna racconta 
http://www.bolognaracconta.com/

 fare?
Soluzione bricolage:
1. leggi il contenuto del file in un buffer
2. estrai il contenuto di <title> con una espressione regolare
Alternativa: dai un'occhiata alle classi PEAR, ce ne dovrebbe essere una 
che si chiama HTML_Processor...
Ciao :-)
-- 
Luca Balzerani
http://www.LatoServer.it

 fare?
La versione più sintetica potrebbe essere
// $stringa è il tuo file
$posizione1 = strpos($stringa,"<title>") + strlen("<title>");
$posizione2 = strpos($stringa,"</title>") + strlen("</title>");
$title = substr($stringa,$posizione1, $posizione2);
Ma naturalmente questo metodo ha molti problemi. in teoria per avere
qualcosa di funzionante bene dovresti:
- cercare il tag "<head" senza il ">"
- da questo punto cercare il ">"
- da questo punto cercare "</head" e tagliare la stringa tenendo solo ciò
che è compreso, quindi, tra "<head*>" e "</head"
- cercare "<title" senza ">"
- cercare ">"
- cercare il "</title" e prendere quindi la stringa compresa tra "<title*>"
e "</title"
LAMASE

 $title = substr($stringa,$posizione1, $posizione2);
dovrebbe essere:
$posizione1 = strpos($stringa,"<title>") + strlen("<title>");
$posizione2 = strpos($stringa,"</title>");
$title = substr($stringa,$posizione1, $posizione2);


eccoti qua un bello scriptino pronto per l'uso.
<?
// definisco che file voglio aprire
$filehtml="form.html";
// apro il file in lettura e riempio una variabile con il contenuto
if (file_exists($filehtml)){
    $fp=fopen($filehtml,"r") or die ("file ".$filehtml." non trovato");
    $contenuto=fread($fp,filesize($filehtml));
    fclose($fp);
}
// eseguo i check e applico la regular expression
if ($contenuto != "") {
 if (ereg("<title>(.*)</title>", $contenuto, $risultato))
    {
        echo "estrazione effettuata, il risultato e': ".$risultato[1];
    } else
    {
        echo "estrazione non eseguita correttamente";
    }
} else
{
    echo "non sono riuscito ad aprire il file: ".$filehtml;
}
?>
--
Fabio Rapposelli
webdeveloper & jr. sysadmin
hi-net.it
 s.r.l. - Via Morgagni,2 - 47900 Rimini (RN)
Tel 
+39 0541 478040
 - Fax 
+39 0541 478032
h t t p : / / w w w . h i - n e t . i t

fare?
Passo 1) procurarsi il manuale
Passo 2) andare alla voce String Functions -> strip_tags
-- 
Filippo "Kirone" Zamengo 
Quanto scritto deve ritenersi IMHO e indipendente dal datore di lavoro
e-mail modificata: togliere DESPAM e .invalid

 $title = substr($stringa,$posizione1, $posizione2);
Partendo dal codice che mi hai fornito, ho fatto un paio di modifiche e
cosi' ne ho ottenuto uno che funziona perfettamente, per ora :-)
$inizio_title = strpos($testo_html, "<title>") + strlen("<title>");
$fine_title = strpos($testo_html,"</title>");
$lunghezza = $fine_title - $inizio_title;
$title = substr($testo_html, $inizio_title, $lunghezza);
Grazie per l' aiuto.


Senti, ma le risposte che dai sono sempre uguali?
Passo1, Passo2...
La lingua Italiana è ben fornita.....
Saluti
:)
"U.S.T.I.F. di Venezia" <usti...@libero.DESPAM.it.invalid> ha scritto nel
messaggio news:3b987015.58699415@SAL9000...


 $title = substr($testo_html, $inizio_title, $lunghezza);
Secondo me con una semplice ereg("<title>(.*)</title>") te la cavi senza
fare una "festa di variabili"®
cmq de gustibus..
Saluti
Fabio Rapposelli -- 
www.hi-net.it

 cmq de gustibus..
Hai ragione...e' che il tuo messaggio l' ho letto dopo...
Ciao


>  if (ereg("<title>(.*)</title>", $contenuto, $risultato))
Cosi va quasi bene, meglio usare 'eregi' (HTML non e' casesensitive)
e quindi si possono estrarre anche
<TITLE> e <Title>
J.

 ha scritto nel messaggio
news:1eze8bd.1enwp2b1jxx186N%c.mar...@bolognaracconta.com...



eregi("<title.*>(.*)</title")
    ^         ^

 Passo 2) andare alla voce String Functions -> strip_tags
1) Leggi meglio quello richiesto.
strip_tags non ti torna solo il title senza tag...
ma anche il resto del documento...
2) leggi il posting ed il manuale... :-)

con eregi č meglio

La lingua Italiana è ben fornita.....
ok, ok.
E' che non ho molto tempo (devo pur giustificare lo stipendio ;) )
Eppoi sono qui soprattutto per imparare (e, infatti, anche in questo
thread ho appicciato ben cinque lucchetti).
Faccio un nodo al fazzoletto, che ci ho la memoria corta. :)
