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

    [php-oop] problema metodo

    Codice PHP:
        function sost_semplice($stringa) {
            
    $cercati = array("/\[b\]/""/\[p\]/""/\[ul\]/""/\[li\]/""/\[h1\]/""/\[h2\]/""/\[h3\]/""/\[h4\]/""/\[strong\]/""/\[\/b\]/""/\[\/p\]/""/\[\/ul\]/""/\[\/li\]/""/\[\/h1\]/""/\[\/h2\]/""/\[\/h3\]/""/\[\/h4\]/""/\[\/strong\]/""/\[br\]/");
            
    $sostituti = array("[b]""

    "
    "<ul>""[*]""<h1>""<h2>""<h3>""<h4>""[b]""[/b]""</p>""[/list]""""<h1>""<h2>""<h3>""<h4>""[/b]""
    "
    );

            
    $this->stringa preg_replace($cercati$sostituti$stringa);

            
    preg_match_all("/\+([^+]+)\+/"$this->stringa$valore);

            
    $img_link = array();

            foreach (
    $valore[1] AS $dati) {
                
    $img explode("|"$dati);
                
                
    $img_link[] = '<span class="' $img[4] . '">' '[img]images/' $img[0] . '.png[/img]' '</span>';
            }

            
    print_r($valore);
            
    $this->stringa preg_replace($valore[0], $img_link$this->stringa);

            return 
    $this->stringa;
        } 
    edit: ehmmm ho sbagliato l'invio..
    Questa volta, più che un voto.. è favoreggiamento.

  2. #2
    Allora lo script funziona abbastanza bene.. il problema è che alla riga:

    $this->stringa = preg_replace($valore[0], $img_link, $this->stringa);

    Mi effettua il replace su ogni valore della stringa $dati..

    Se ad esempio passo alla funzione la stringa:

    $str = 'andiamo allo zoo +image|valore|VAL|bei|liu|nj+ a vedere +image2|valore2|VAL2|bei2|liu2|nj2+ il mandrillo';

    Come potete provare anche voi.. la funzione mi carica un'immagine x ogni valore di "+image|valore|VAL|bei|liu|nj+" invece a me servirebbe che sostituisse solamente l'intera stringa con il link all'immagine..

    E' un pò un casino.. se non si capisce rispiego..

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

  3. #3
    up
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    mmh :master:

    allora facendo un pò di prove, e stampando le variabili sono arrivato a:

    Codice PHP:
    Array(
        [
    0] => Array
            (
                [
    0] => +image|valore|VAL|bei|liu|nj+
                [
    1] => +image2|valore2|VAL2|bei2|liu2|nj2+
            )

        [
    1] => Array
            (
                [
    0] => image|valore|VAL|bei|liu|nj
                
    [1] => image2|valore2|VAL2|bei2|liu2|nj2
            
    )
    )

    Array(
        [
    0] => <span class="liu">[img]images/image.png[/img]</span>
        [
    1] => <span class="liu2">[img]images/image2.png[/img]</span>

    Il primo array si riferisce alla variabile $valore, che contiene il pattern che deve essere sostituito dai valori del secondo array, $img_link...

    Non capisco perchè, come da manuale, la funzione preg_replace "$this->stringa = preg_replace($valore[0], $img_link, $this->stringa);" non sostituisce semplicemente i valori del primo array con quelli del secondo..

    Alla fine la sostituzione viene eseguita ma in modo errato.. infatti l'output mi dà:

    Codice PHP:
    [b]andiamo[/ballo zoo
    +<span class="liu">[img]images/image.png[/img]</span>|
    <
    span class="liu">[img]images/image.png[/img]</span>|
    <
    span class="liu">[img]images/image.png[/img]</span>|
    <
    span class="liu">[img]images/image.png[/img]</span>|
    <
    span class="liu">[img]images/image.png[/img]</span>|
    <
    span class="liu">[img]images/image.png[/img]</span>+ 
    a vedere 
    +<span class="liu">[img]images/image.png[/img]</span>2|
    <
    span class="liu">[img]images/image.png[/img]</span>2|
    <
    span class="liu">[img]images/image.png[/img]</span>2|
    <
    span class="liu">[img]images/image.png[/img]</span>2|
    <
    span class="liu">[img]images/image.png[/img]</span>2|
    <
    span class="liu">[img]images/image.png[/img]</span>2
    il mandrillo 
    Quando l'output dovrebbe essere semplicemente:
    Codice PHP:
    [b]andiamo[/ballo zoo
    <span class="liu">[img]images/image.png[/img]</span
    a vedere 
    <span class="liu">[img]images/image.png[/img]</span>
    il mandrillo 
    strano davvero.. :master:
    Questa volta, più che un voto.. è favoreggiamento.

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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.