Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Richiesta strana

  1. #1
    Utente bannato
    Registrato dal
    Oct 2008
    Messaggi
    88

    Richiesta strana

    Praticamente ho una cartella con un file: informazioni.html

    Questa pagina .html che si trova nella cartella localhost/dati/
    Ha nel codice questi descrittori:

    <meta name="description" content="descrizione breve dell`articolo">
    <title>titolo dell`articolo</title>

    E` possibile creare un codice php che crei una tabella di 3 colonne molto semplici:

    prima colonna: nome del file html
    seconda colonna: descrizione breve dell`articolo (nel meta name cioe` il contenuto del content)
    terza colonna: il titolo dell`articolo


    sarei veramente grato a chi mi risponde..
    Mi serve perche questa pagina viene aggiornata in continuazione e nn voglio cambiare ogni volta la tabella...

    Cmq nn sono un mago del php, uso piu che altro vb.net.... Quindi magari se potete postare il codice ve ne sarei grato, ma anche consigli vanno benissimo

    buon fine settimana..

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    442
    ciao, questo script che ho fatto io, per ora ti visualizza solo uncampo
    devo ancora risolvere l'aggiornamento
    lo script è da dividere in due pagine
    nella prima mandi i valori di name content e titolo via form alla pagina che crea la tabella

    post.php
    Codice PHP:
    <?
    echo "
    <form method=post action=crea.php>
    <input type=text name=\"name\">
    <input type=text name=\"content\">
    <input type=text name=\"titolo\">
    <input type=submit name=\"submit\" value=invia>
    </form>
    "
    ;
    ?>
    crea.php

    Codice PHP:
     <?
    $name
    =$_POST['name'];
    $content=$_POST['content'];
    $titolo=$_POST['titolo'];
    ?>
    <html>
    <meta name=".<?$name?>." content=".<?$contente?>.">
    <title> <?$titolo?> </title>
    </html>
    <?
    //passare name content title si++
    function crea_tab($name,$content,$titolo)
    {
    echo 
    "
            
            <table>
             <caption><div align=\"center\">[b]Meta Tag[/b]</div></caption>

       <thead>
              <tr>
                     <th width=\"20%\">Name;</th>
                     <th width=\"40%\">Content</th>
                     <th width=\"40%\">Titolo</th>
              </tr>
       </thead>

       <tfoot>
              <tr>
                     <td></td>
                     <td></td>
                     <td></td>
              </tr>

              <tr>
                     <td >[b]Totale[/b]</td>
                     <td >450.000</td>
                     <td >45.000</td>
              </tr>
       </tfoot>

       <tbody>"
    ;
       
    $count=count($name);
       for(
    $i=0;$i<=$count;$i++)
       {
       echo 
    "
              <tr>
                     <td >"
    .$name[$i]."</td>
                     <td >"
    .$content[$i]."</td>
                     <td >"
    .$titolo[$i]."</td>
              </tr>"
    ;

           }   
              echo 
    "
       </tbody>
            </table>
            
        "
    ;
    }
     
    crea_tab($name,$content,$titolo);
    la parte da lavorare è dove c'è il ciclo

    saluti luigi

  3. #3
    Il più semplice è di trovare le informazioni con una regexp.
    Codice PHP:
    $file 'informazioni.html';

    $code file_get_contents($file);

    if(
    preg_match('@<title>([^<]*?)<\/title>@'$code$match)){
        
    $titolo $match[1];
    }
    if(
    preg_match('@<meta name="description" content="([^"]*?)">@'$code$match)){
        
    $descrizione $match[1];
    }

    echo 
    "$file : $titolo , $descrizione"
    Penso che dovrebbe bastarti come base.

  4. #4
    @254555424277575
    Con la funzione file() carichi una pagina HTML, in una stringa.
    Tutto il codice sarà presente quindi in una variabile.
    Per estrarne il titolo ti basterà usare un explode e la funzione list.
    Codice PHP:
    $codice file("pagina.html");
    list(
    $prima$titolo_e_altro) = explode("<title>"$codice);
    list(
    $titolo$altro) = explode("</title>"$titolo_e_altro);
    // $titolo contiene quello che cerchi 
    Per la descrizione presente nel meta tag di una pagina, puoi usare la funzione get_meta_tags().
    in questo link ne trovi la sintassi corretta con un esempio che fa proprio al caso tuo.
    Codice PHP:
    $tags get_meta_tags("pagina.html");
    $descrizione $tags['description']; 
    Penso non ti sia difficile prendere queste variabili ed inserirle in una tabella.

    La questione un po' spinosa è che il nome della pagina che vai ad analizzare lo dovresti sapere di partenza.
    Sennò entrambi i metodi saltano.
    Se cerchi una routine che vada a pescare delle pagine html in automatico, devi prima spiegare quello che ti serve.

    @Lowenthal
    Non capisco se sono io che ho capito male o se non hai capito te quello che serve a chi ha aperto il thread, magari.
    Te hai una form nella quale vai ad inserire, a mano, i contenuti delle informazioni che il nostro amico cerca di impaginare, ma da quello che ho capito io, il suo problema non è impaginare, ma andare a pescare i contenuti stessi.
    No????

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente bannato
    Registrato dal
    Oct 2008
    Messaggi
    88

    grazie

    grazie per gli spunti
    cmq io dovrei alla fine utilizzare questo codice in maniera piu complessa:

    Ho una cartella con tantissimi file .html e tutti hanno quei tag che ho indicato

    Il codice dovrebbe estrarre i dati che mi servono da ogni pagina e inserirli in una tabella di 3 colonne:
    prima colonna: nome della pagina
    seconda colonna: il tag
    terza colonna: il titolo della pagina...

    come si potrebbe fare?

  6. #6
    Utente bannato
    Registrato dal
    Oct 2008
    Messaggi
    88

    cmq

    cmq ha ragione alcio74, devo estrarre i dati dalla pagina non li devo inviare alla pagina..

  7. #7
    Allora utilizza il glob() (<= vedi link) per leggere ciclandoli i file della cartella, e quindi usa le funzioni che ti ho detto per estrarre i dati.

    Codice PHP:
    $files glob("cartella/*.html");

    echo 
    "
    <table>
      <tr>
        <th>Nome File</th>
        <th>Titolo Pagina</th>
        <th>Descrizione</th>
      </tr>
    "
    ;
    foreach (
    $files AS $file){
    // trovo il titolo
    $codice file($file); 
    list(
    $prima$titolo_e_altro) = explode("<title>"$codice); 
    list(
    $titolo$altro) = explode("</title>"$titolo_e_altro);
    // trovo la descrizione
    $tags get_meta_tags($file); 
    $descrizione $tags['description'];
    // stampo
    echo "
       <tr>
              <td>
    $file</td>
              <td>
    $codice</td>
              <td>
    $descrizione</td>
      </tr>
    "
    ;
    }
    echo 
    "</table> 
    Così dovrebbe funzionare. Vedi un po'?
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  8. #8
    Utente bannato
    Registrato dal
    Oct 2008
    Messaggi
    88

    da l`errore nell`array.

    da l`errore nell`array del titolo.
    Come si puo fare a considerare tutte le sottocartella di quella indicata

  9. #9
    Beh... lo script l'ho buttato giu al volo senza provarlo per cui un errorino ci può essere.

    Se però non mi dici l'errore che da, non posso aiutarti.
    Copia l'errore che leggi a video ed incollalo qui.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Utente bannato
    Registrato dal
    Oct 2008
    Messaggi
    88

    ok

    ok figurati scusami
    questo e` il risultato che mi esce...

    Nome File Titolo Pagina Descrizione
    C:\wamp\www/informazioni.html Array descrizione breve dell`articolo
    C:\wamp\www/pagina1.html Array

    il fatto che esce array anche se effettivaamente c`e` il titolo della pagina../

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.