Visualizzazione risultati 1 fino 24 di 24

Discussione: Stampare il contenuto tra due tag html

  1. #1
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito Stampare il contenuto tra due tag html

    Ciao, parto subito da un esempio: voglio stampare in PHP il contenuto di due tag HTML, ad esempio il contenuto presente tra
    Codice HTML:
    <div></dv>
    . Il contenuto varia e non è reperibile tramite form (quindi niente GET o POST). Esiste una soluzione?

    Lascio anche un altro esempio:

    oggi ho
    Codice HTML:
    <div>Giorgio</div>
    domani avrò
    Codice HTML:
    <div>Claudio</div>
    Per cui, non so cosa ci sarà nei div ma voglio stampare il loro contenuto.


    Spero di essere stato abbastanza chiaro.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Codice PHP:
    <div><?= $variabile ?></dv>
    Occhio che per interpretare php, è necessario che le pagine abbiano l'estensione *.php.

    Ciao!

  3. #3
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    un altro metodo non c'è? perchè, come spiegato inizialmente, la pagina non contiene form e quindi non fornisce variabili; è una pagina statica in html che viene aggiornata manualmente.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    In questo caso non capisco il senso di usar php.

    Ciao!

  5. #5
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    In questo caso non capisco il senso di usar php.

    Ciao!
    Provo a rispiegarmi:

    mettiamo caso che ho una pagina "index.html" : questa contiene tutti i div ecc

    ora ho una pagina "prova.php": questa contiene un codice che stampa il contenuto dei div di index.html.

    Come faccio?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Se hai una pagina con estensione ".html", a meno di non abilitare il barser php tramite .htaccess, non puoi scrivere del php.
    Quindi l'unico modo per farlo è tramite ajax, con javascript (chiamando la pagina prova.php con ajax).

    Ciao!

  7. #7
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da stefanoprovaphp Visualizza messaggio
    un altro metodo non c'è? perchè, come spiegato inizialmente, la pagina non contiene form e quindi non fornisce variabili; è una pagina statica in html che viene aggiornata manualmente.
    Non è che ci sia questo legame stretto tra form e variabili.
    Uno script php può esistere benissimo al di fuori del contesto di moduli, ma anche di pagine web volendo.

    Se ho capito bene, tu hai bisogno di modificare dei valori, senza entrare troppo a contatto con html.
    Per esempio hai una pagina php, che supponiamo si chiami valori.php
    Codice PHP:
    <?php
    $nome
    = "Pippo";
    $cognome = "Rossi";
    // altre variabili
    ?>
    poi hai una pagina che legge questi valori, ma sempre php:
    Codice PHP:
    <?php require_once "valori.php" ?>
    <!doctype html>
    <!-- tutto il resto -->
    <div><?= $nome; ?></div>
    <div><?= $cognome; ?></div>
    <!-- tutto il resto -->
    A questo punto, ti basta cambiare il contenuto delle variabili in valori.php per modificare rapidamente quei 'div'.
    Ultima modifica di javascripter : 10-01-2014 alle ore 18.29.26

  8. #8
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    il problema è che le variabili non le ho, in quanto la prima pagina html viene da una fonte esterna, per cui io ho solo il codice sorgente HTML.

    Un esempio concreto (spero di non fare spam):

    www.corriere.it

    voglio che ogni volta che si aggiorni la pagina del corriere, il mio script in php stampi tutto ciò che è contenuto nei tag h2. In questo momento trovo:

    Codice HTML:
    <h2>IL CAPO DEL GOVERNO</h2>
    Ma domani ovviamente ci sarà dell'altro contenuto.

    E' possibile realizzare qualcosa del genere?

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Ah, quindi vuoi recuperare informazioni da altri siti.
    Non è molto semplice: devi recuperare tutto il sorgente della pagina da cui vuoi prendere informazioni, quindi devi farti un parser html per analizzare il suo sorgente e recuperare informazioni (con le funzioni delle stringhe, visto che il sorgente non è altro che stringhe (dipende in che modo recuperi il sorgente, se con file() o con curl o con file_get_contents() o le altre funzioni siimli...).

    Ricordati che per leggere informazioni da siti esterni su altervista devi attivare le connessioni server2server.

    Ciao!
    Ultima modifica di alemoppo : 11-01-2014 alle ore 00.47.52

  10. #10
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Potresti scrivermi un codice d'esempio di parsing? Volendo magari recuperare il titolo principale di https://news.google.it/ (che è già sbloccato nelle connessioni server to server).

    p.s: ho provato PHP Simple HTML DOM Parser.

    Ho questo codice:

    Codice PHP:
    include("simple_html_dom.php");
    // Create DOM from URL or file
    $html = file_get_html('http://www.google.com/');

    // Find all images
    foreach($html->find('img') as $element)
    echo
    $element->src . '<br>';

    // Find all links
    foreach($html->find('a') as $element)
    echo
    $element->href . '<br>';
    che però mi restituisce Fatal error: Call to a member function find() on a non-object

    Perchè?
    Ultima modifica di stefanoprovaphp : 11-01-2014 alle ore 02.00.03

  11. #11
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Che io sappia, find non esiste come metodo su php. Probabilmente hai visto questo script, e se vedi ti fanno scaricare un file php con tutte le funzioni necessarie (tra cui anche la file_get_html e find) da includere.

    Potresti scrivermi un codice d'esempio di parsing? Volendo magari recuperare il titolo principale di https://news.google.it/ (che è già sbloccato nelle connessioni server to server).
    Io solitamente utilizzo le funzioni delle stringhe (e a volte quelle per gli array), quindi ad esempio:

    Codice PHP:
    <?php
    $contenuto
    = file_get_contents('https://news.google.it/');
    $inizio = strpos($contenuto, '<span class="titletext">') + strlen('<span class="titletext">');
    $contenuto = substr($contenuto, $inizio);
    $fine = strpos($contenuto, '</span>');
    $contenuto = substr($contenuto, 0, $fine);
    echo
    'Il titolo di google news dovrebbe essere: '.$contenuto;
    ?>
    Ma si può far in infiniti modi...

    (tutte quelle variabili sono inutili: le ho messe per far capire circa come funziona lo script...).

    Ciao!
    Ultima modifica di alemoppo : 11-01-2014 alle ore 03.01.24

  12. #12
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Che io sappia, find non esiste come metodo su php. Probabilmente hai visto questo script, e se vedi ti fanno scaricare un file php con tutte le funzioni necessarie (tra cui anche la file_get_html e find) da includere.


    Io solitamente utilizzo le funzioni delle stringhe (e a volte quelle per gli array), quindi ad esempio:

    Codice PHP:
    <?php
    $contenuto
    = file_get_contents('https://news.google.it/');
    $inizio = strpos($contenuto, '<span class="titletext">') + strlen('<span class="titletext">');
    $contenuto = substr($contenuto, $inizio);
    $fine = strpos($contenuto, '</span>');
    $contenuto = substr($contenuto, 0, $fine);
    echo
    'Il titolo di google news dovrebbe essere: '.$contenuto;
    ?>
    Ma si può far in infiniti modi...

    (tutte quelle variabili sono inutili: le ho messe per far capire circa come funziona lo script...).

    Ciao!
    Grazie mille, era proprio ciò che mi serviva.

  13. #13
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    uppo il topic vorrei sapere come mai con questo codice:

    Codice PHP:
    <?php
    $contenuto
    = file_get_contents('http://www.punto-informatico.it');
    $inizio = strpos($contenuto, '<h1>') + strlen('<h1>');
    $contenuto = substr($contenuto, $inizio);
    $fine = strpos($contenuto, '</h1>');
    $contenuto = substr($contenuto, 0, $fine);
    echo
    $contenuto;
    ?>
    Non stampa nulla. il sito l'ho preso dalla lista server to server già disponibile.

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    A me funziona: http://alemoppo.altervista.org/LABS/...nformatico.php
    Anche senza link: http://alemoppo.altervista.org/LABS/...co_no_link.php

    Quindi quel codice è corretto. Non ho mai utilizzato il server2server senza abilitare gli altri siti, non so perché non ti funziona. Ma google news funziona? (visto che è anche lui nella white-list).

    Ciao!

  15. #15
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    guarda tu stesso:

    http://stefanoprovaphp.altervista.org/zzzzzzz.php

    non stampa nulla..

    google news mi funziona, si.

  16. #16
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non ho capito se le hai attivate...

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ricordati che per leggere informazioni da siti esterni su altervista devi attivare le connessioni server2server.

  17. #17
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Citazione Originalmente inviato da stefanoprovaphp Visualizza messaggio
    guarda tu stesso:

    http://stefanoprovaphp.altervista.org/zzzzzzz.php

    non stampa nulla..

    google news mi funziona, si.
    Non so aiutarti, purtroppo: il fatto che google news funzioni e punto-informatico no, non so il perché: sono entrambi nella whitelist! Ed il codice è corretto perché a me funziona.

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Non ho capito se le hai attivate...
    No, non le ha attivate ma dovrebbe funzionare ugualmente perché sono nella whitelist (come google news, appunto).
    Purtroppo non ho un account con il server2server disabilitato.... O forse sì, ma non ricordo quale .

    Ciao!
    Ultima modifica di alemoppo : 13-01-2014 alle ore 15.56.35

  18. #18
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    A me in un sito con s2s disabilitato non mi funziona nessuno dei due
    Comunque può essere che senza s2s si deve per forza utilizzare un sito con SSL?

  19. #19
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    A me in un sito con s2s disabilitato non mi funziona nessuno dei due
    Comunque può essere che senza s2s si deve per forza utilizzare un sito con SSL?
    con s2s abilitato funziona tutto.

  20. #20
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    riuppo il topic.

    ho notato che se si presenta un codice del genere:

    Codice HTML:
    <div id="mario">Ciao a tutti</div>
    <div id="mario">Ciao a nessuno</div>
    Lo script mi stampa solo la prima corrispondenza. Come faccio a stampare, ad esempio, tutti i div id = mario ?

  21. #21
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,067

    Predefinito

    Non possono esistere più elementi con lo stesso id

    Comunque, se capisci come funziona lo script sopra, saprai benissimo far quel che cerchi di fare.

    Ciao!

  22. #22
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non possono esistere più elementi con lo stesso id

    Comunque, se capisci come funziona lo script sopra, saprai benissimo far quel che cerchi di fare.

    Ciao!
    nel mio caso c'è più di una corrispondenza di

    Codice HTML:
    <a class="">

  23. #23
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Gli ID sono univoci, le classi no.
    Volendo puoi dare ad ogni elemento un ID che si differenzia nella parte finale, ad esempio mario1, mario2, mario3 ecc.

  24. #24
    stefanoprovaphp non è connesso Neofita
    Data registrazione
    20-11-2013
    Messaggi
    28

    Predefinito

    Citazione Originalmente inviato da radiodelmomento Visualizza messaggio
    Gli ID sono univoci, le classi no.
    Volendo puoi dare ad ogni elemento un ID che si differenzia nella parte finale, ad esempio mario1, mario2, mario3 ecc.
    ma siccome ho due class="mario" mi serve prendere tutte e due e non solo la prima come fa lo script. =(

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •