Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Espressione regolare complessa

    Salve a tutti, dovrei fare un'espressione regolare un pò incasinata e sono giorni che ci smanetto.

    In una stringa di testo tipo: 'Prova prova prova prova http://www.sito.it/foto.php?id=2334 Prova prova prova www.sito.it/contatti.php prova prova'

    vado a sostituire "www.sito.it/foto.php?id=2334" con [img]www.sito.it/img .php?id=2334[/img]
    Una parte del problema è che non devo intaccare i link simili e cioè www.sito.it/contatti.php deve restare integro.

    Spero che qualcuno possa darmi una mano,ciao a tutti e buon 2009!

  2. #2
    Studiati questo codice:

    Codice PHP:
    <?php 

    $content 
    'Prova prova prova prova [url]http://www.sito.it/foto.php?id=2334[/url] Prova prova prova [url]www.sito.it/contatti.php[/url] prova prova';

    $pattern '#http://www\\.sito\\.it/foto\\.php\\?id=(\\d*)#si';
    $replace '[img]www.sito.it/img.php?id=$1[/img]';
    $content preg_replace($pattern$replace$content);

    echo(
    $content);

    ?>

  3. #3
    Originariamente inviato da filippo.toso
    Studiati questo codice:

    Codice PHP:
    <?php 

    $content 
    'Prova prova prova prova [url]http://www.sito.it/foto.php?id=2334[/url] Prova prova prova [url]www.sito.it/contatti.php[/url] prova prova';

    $pattern '#[url]http://www\\.sito\\.it/foto\\.php\\?id=[/url](\\d*)#si';
    $replace '[img]www.sito.it/img.php?id=$1[/img]';
    $content preg_replace($pattern$replace$content);

    echo(
    $content);

    ?>
    Grazie mille! funziona alla perfezione!

  4. #4
    Ciao, mentre modificavo il codice che mi hai consigliato sono incappato in un'altro problema.

    Volevo prendere la variabile che trovo con l'espressione regolare e inserirla in una query tipo questa:
    $sqlQuery = "SELECT * FROM `photos` WHERE `id` = '$1' LIMIT 0, 1";

    e non funziona, chiaramente non posso togliere gli apostrofi perchè mi da errore per le variabili con prima lettere un numero.
    Come posso fare per far digerire la variabile dell'espressione regolare in modo che funzioni in una query?ho già provato in tutti i modi che conoscono(mettendo backslashes e altro)
    Grazie ciao!

  5. #5
    Codice PHP:
    <?php

    $content 
    'Prova prova prova prova [url]http://www.sito.it/foto.php?id=2334[/url] Prova prova prova [url]www.sito.it/contatti.php[/url] prova prova';
    $pattern '#http://www\\.sito\\.it/foto\\.php\\?id=(\\d*)#si'

    $sql false;
    if (
    preg_match($pattern$content$matches)) {
        
    $sql "SELECT * FROM `photos` WHERE `id` = '{$matches[1]}' LIMIT 0, 1";
    }

    echo(
    $sql);

    ?>

  6. #6
    Salve, uso di nuovo questa discussione per una nuova richiesta d'aiuto.

    In un testo dovrei trovare solo i link che rimandano a un file .jpg tipo: http://www.nomesito.it/immagine.jpg
    Come potrei fare?
    Grazie per l'aiuto.

    Ciao a tutti.

  7. #7
    E' piuttosto semplice, perchè non provi a farlo da solo?

  8. #8
    Ciao, purtroppo se ho scritto qui è perchè anche se ho provato, non ci riesco proprio.
    Comunque proprio questa mattina ho comprato su una bancarella di un mercatino un libricino sulle espressione regolari, ora vedo cosa ne tiro fuori.
    Grazie lo stesso.
    Ciao!

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.