Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di bart87
    Registrato dal
    Apr 2004
    Messaggi
    184

    Help con una preg_match

    allora, ecco la preg:
    $b = preg_match("/([B]Operating
    System<\/B><\/TD>
    <TD vAlign=top>)(.*?)(<\/TD>)/i" , "$testo", $a);

    echo $b;
    dovrebbe riconoscermi questo testo:
    Operating
    System
    </TD>
    <TD vAlign=top>Microsoft Windows XP</TD>
    ma mi dà 0 risultati, non riesco a capire perché..
    Nunc Bibendum est!

  2. #2
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    non vedo xke dai l'escape al carattere "/", non dovrebbe darti problemi quel carattere

  3. #3
    Utente di HTML.it L'avatar di bart87
    Registrato dal
    Apr 2004
    Messaggi
    184
    Originariamente inviato da kuarl
    non vedo xke dai l'escape al carattere "/", non dovrebbe darti problemi quel carattere
    Non serve per terminare la preg quello??
    se non gli do l'escape mi da errore , dice che T (quello del /TD) is a wrong parameter..
    Nunc Bibendum est!

  4. #4
    effettivamente devi mettere il \ davanti a / perché è il delimitatore dell'espressione regolare, dunque il problema non è quello.

    Però tu fai un echo $b, $b contiene solo true o false, se vuoi vedere i testi riconosciuti puoi fare un print_r($a);

    Altrimenti così a prima vista non vedo un errore ma ti posso consigliare di cominciare col farla più semplice e aggiungere i dettagli uno alla volta verificando che funzionano (cominci magari col trovare i [b] e <td> e poi aggiungi il resto).

  5. #5
    Utente di HTML.it L'avatar di bart87
    Registrato dal
    Apr 2004
    Messaggi
    184
    Originariamente inviato da spoon25
    effettivamente devi mettere il \ davanti a / perché è il delimitatore dell'espressione regolare, dunque il problema non è quello.

    Però tu fai un echo $b, $b contiene solo true o false, se vuoi vedere i testi riconosciuti puoi fare un print_r($a);

    Altrimenti così a prima vista non vedo un errore ma ti posso consigliare di cominciare col farla più semplice e aggiungere i dettagli uno alla volta verificando che funzionano (cominci magari col trovare i [b] e <td> e poi aggiungi il resto).
    L'echo $b; mi da il numero di risultati trovati, e mi dà 0, è prorpio questo il problema, ne ho fatta una uguale solo con un'altro testo che peraltro contiene + o - gli stessi tag e quella va, non riesco proprio a capire..
    ho provato ad aggiungere pian piano le varie parti, ma mi riconosce al max (mi sembra) questo:
    $b = preg_match("/p> )(.*?)(<)/i" , "$testo", $a);
    Non riesco propio a capire..
    Nunc Bibendum est!

  6. #6
    Utente di HTML.it L'avatar di Syntax
    Registrato dal
    Oct 2003
    Messaggi
    18
    Codice PHP:
    $b preg_match("/([B]Operating
    System<\/B><\/TD>
    <TD vAlign=top> )(.*?)(<\/TD> )/si" 
    "$testo"$a);

    echo 
    $b
    prova con /si alla fine dell'espressione
    |Syntax|

  7. #7
    Utente di HTML.it L'avatar di bart87
    Registrato dal
    Apr 2004
    Messaggi
    184
    Originariamente inviato da Syntax
    Codice PHP:
    $b preg_match("/([B]Operating
    System<\/B><\/TD>
    <TD vAlign=top> )(.*?)(<\/TD> )/si" 
    "$testo"$a);

    echo 
    $b
    prova con /si alla fine dell'espressione
    Niente da fare, sembra che il problema sia quando il testo che gli apsso va a capo (è strano perché questa:
    Codice PHP:
    preg_match("/(<TD vAlign=top width=530 bgColor=#ffffff>

                <H1>)(.*?)(<\/H1>)/i" 
    "$testo"$a); 
    che riconosce
    codice:
    <TD vAlign=top width=530 bgColor=#ffffff>
    
                <H1>3d Mark 2001</H1>
    invece va benone..)
    Ho provato anche a mettere /m in fondo (modalità multilinea) e a dargli i $ e ^ a inizio e fine riga ma non va..
    Nunc Bibendum est!

  8. #8
    Utente di HTML.it L'avatar di bart87
    Registrato dal
    Apr 2004
    Messaggi
    184
    Ho riprovato a mettere /si , adesso va, /s significa che il punto non definisce solo i caratteri normali ma anche gli a capo, era quello che mancava.
    Grazie Syntax!
    Nunc Bibendum est!

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.