Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [php]preg_match

  1. #1

    [php]preg_match

    Buona giornata a tuttiiiii

    Allora ho un problema con il preg_match VVoVe:

    Codice PHP:
    $str 'andiamo allo zoo +image|valore+ a vedere il mandrillo';
    preg_match_all("/\+(.*)\+/"$str$valore);
    print_r($valore); 
    un array multidimensionale fatto cosi:
    Codice PHP:
    Array
    (
        [
    0] => Array
            (
                [
    0] => +image|valore+
            )

        [
    1] => Array
            (
                [
    0] => image|valore
            
    )


    a me basta solo un semplice array tipo:

    array([0] => image|valore);
    Ma non riesco ad ottenerlo.. qualcuno che mi dà uno sputo.. ehmmm spunto

    Grazieeeee
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    preg_match() restituisce come primo elemento la corrispondenza con l'intero criterio di ricerca (come da manuale) e non credo ci sia un modo per modificare tale comportamento.

    Ma perchè semplicemente non usi array_shift() per eliminare il primo elemento dell'array restituito con preg_match()?
    Michele Castellucci
    Sviluppatore Web del Consorzio CottonBit
    Consorzio Cottonbit
    Risorse per la programmazione
    Dire Fare Programmare!

  3. #3
    No non ci siamo.. io ho una stringa da database... ad esempio:

    $stringa = 'qualcosa qualcosa qualcosa qualcosa +param|valore+ qualcosa qualcosa +param2|valore2+ qualcosa qualcosa';

    Io da questa stringa devo ottenere un'array con

    array([0] => param|valore, [1] => param2|valore2); ect ect..

    Il delimitatore è sempre "+" quindi mi devo prendere tutto quello ke stà dentro a questo delimitatore:
    "/\+(.*)\+/" <--- espressione regolare.. credo sia giusta ma nn sono sicuro..

    Il problema è che non riesco a recuperare tutte le occorrenze all'interno della stringa...

    Qualche idea???
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Codice PHP:
    $str 'andiamo allo zoo +image|valore+ a vedere il mandrillo';
    preg_match("/\+(.+)\+/"$str$valore);
    echo 
    $valore[1]; 
    Cosi funziona se nella stringa c'è solo +image|valore+ ma se io ne avessi piu di uno??? come faccio???
    Questa volta, più che un voto.. è favoreggiamento.

  5. #5
    :master:
    Questa volta, più che un voto.. è favoreggiamento.

  6. #6
    $str = 'andiamo allo zoo +image|valore+ a +image2|valore2+ vedere il mandrillo';
    preg_match_all("/\+([^+]+)\+/", $str, $valore);
    print_r($valore);


    poi con l'array ci fai quello che vuoi :ignore:
    Michele Castellucci
    Sviluppatore Web del Consorzio CottonBit
    Consorzio Cottonbit
    Risorse per la programmazione
    Dire Fare Programmare!

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.