Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668

    if e comportamento strano..

    Ciao, ho questo codice:

    <?php
    $idpar= 01;
    $insideitem = false;



    $tag = "";
    $title = "";
    $description = "";
    $link = "";
    $id = "";

    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link, $id;
    if ($insideitem) {
    $tag = $name;
    } elseif (strtolower($name) == "item") {
    $insideitem = true;
    }
    }

    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link, $id;
    if (strtolower($name) == "item") {

    if($id == $idpar) {
    printf("[*]<h4>%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s
    ",trim($description));

    $title = "";
    $id = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }

    [....]

    Non capisco perchè se nell'istruzione:

    if($id == $idpar) {
    printf("[*]<h4>%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s
    ",trim($description));


    se invece di $idpar metto 01 funziona se faccio

    $idpar=01;
    e poi lo passo al ciclo:

    if($id == $idpar) {
    printf("[*]<h4>%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s
    ",trim($description));


    non funziona..

    Qualcuno mi spiega perchè?..Mi sembra stranissimo questo comportmento..

  2. #2
    devi passare anche $idpar alla funzione

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    oh cavolo....
    provo grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    se lo aggiungo come paramentro mi ritrovo una sfilza di errori..

    Non posso prendere il valore della stringa con $_GET['id'] direttamente da dentro la funzione?

    Grazie

  5. #5
    Originariamente inviato da moribura
    se lo aggiungo come paramentro mi ritrovo una sfilza di errori..

    Non posso prendere il valore della stringa con $_GET['id'] direttamente da dentro la funzione?

    Grazie
    puoi fare come ti pare, ma pero' non trovo corrispondenza tra quello che chiedi ora e lo script di cui sopra.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    la corrispondenza è che io ho un paramentro dpreso dalla stringa di interrog, da passare all'if, il idpar per intenderci.

    Ho provato a metterlo dentro la funzione come suggerito, e funziona solo se lo schianto:

    $idpar=01

    ma se faccio $idpar = $_GET['id'], non lo legge e arriva vuoto..


    function endElement($parser, $name) {
    global $insideitem, $tag, $title, $description, $link, $id;
    $idpar= $_GET['id'];
    if (strtolower($name) == "item") {

    if($id == $idpar) {
    printf("[*]<h4>%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s
    ",trim($description));

    $title = "";
    $id = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }
    }
    }


    come mai?..Non è possibile leggere il pramentro get da url?
    Come posso fare a dichiarare una var fuori visibile dentro a tutte le funzioni?

    Mi puoi aiutare perfavore?
    Grazie

  7. #7
    devi passare il valore (esterno) alla funzione, gia' lo fai dichiarando un certo numero di variabili come globali (global). Aggiungi pure quello.

    Tieni pero' presente che una funzione deve ritornare un qualcosa e quel qualcosa deve essere dichiarato con un RETURN.

    meglio se dai un'occhiata alle funzioni sull manuale.

    http://it2.php.net/manual/it/language.functions.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    ciao,

    ho prvato cosi:


    <?php

    $idpar= $_GET['id'];
    $insideitem = false;
    $tag = "";
    $title = "";
    $description = "";
    $link = "";
    $id = "";

    function startElement($parser, $name, $attrs) {
    global $insideitem, $tag, $title, $description, $link, $id;
    if ($insideitem) {
    $tag = $name;
    } elseif (strtolower($name) == "item") {
    $insideitem = true;
    }
    }


    function endElement($parser, $name, $idpar) {

    global $insideitem, $tag, $title, $description, $link, $id, $idpar;
    if (strtolower($name) == "item") {



    if($id == $idpar) {
    printf("[*]<h4>%s
    ",
    trim($link),trim($title),trim($title));
    printf("%s
    ",trim($description));

    $title = "";
    $id = "";
    $description = "";
    $link = "";
    $insideitem = false;
    }

    }
    }

    function characterData($parser, $data) {
    global $insideitem, $tag, $title, $description, $link, $id;
    if ($insideitem) {
    switch (strtolower($tag)) {
    case "title":
    $title .= $data;
    break;
    case "description":
    $description .= $data;
    break;
    case "link":
    $link .= $data;
    break;
    case "id":
    $id .= $data;
    break;
    }
    }
    }

    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");

    // Carico indirizzo feed rss delle news
    $fp = fopen("news.xml","r")

    or die("Error reading RSS data.");
    while ($data = fread($fp, 4096))
    xml_parse($xml_parser, $data, feof($fp))
    or die(sprintf("XML error: %s at line %d",
    xml_error_string(xml_get_error_code($xml_parser)),
    xml_get_current_line_number($xml_parser)));
    fclose($fp);
    xml_parser_free($xml_parser);
    ?>


    ma non funziona mi da una sfilza di errori:

    Warning: Missing argument 3 for endelement() in /var/www/VirtualHosts/tvip.aitek.it/STAGE/it/news_singola.php on line 69

    non capisco..

    questo script non è mio, l'ho trovato in internet..e sto cercando di personalizzarloo inmodo che visualizzi la news xml con l'id uguale a quello passato dalla url..ma non va...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    a me basterbee passare $idpar alla funzione che lo usa per fare il controllo, il resto è ok..ma non so come fare..mi ci sto picchiando da 1 ora...

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    668
    nessuno può aiutarmi?

    grazie

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.