Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828

    [php] Mettere in grassetto keywords di un testo

    Salve,
    ho una variabile $keywords="pane, salame, frutta";
    e una variabile $row[testo]="Oggi ho mangiato molto pane, un pò di frutta e un pezzo di salame";

    Voglio che dentro $testo le keywords vengano messe in grassetto.
    Ho provato così:

    Codice PHP:
    $keys=explode(',',$keywords);
    $row[testo] = str_replace("$keys[0]""[b]$keys[0][/b]"$row[testo]);
    $row[testo] = str_replace("$keys[1]""[b]$keys[1][/b]"$row[testo]);
    $row[testo] = str_replace("$keys[2]""[b]$keys[2][/b]"$row[testo]); 
    ma se per esempio $testo="Poi ho mangiato anche il panettone" lui poi scrive questo
    panettone che evidentemente non è il risultato che voglio

    Ho provato anche così:

    Codice PHP:
    $keys=explode(',',$keywords);
    $row[testo] = str_replace($keys[0] "" [b]$keys[0][/b] "$row[testo]);
    $row[testo] = str_replace($keys[1] "" [b]$keys[1][/b] "$row[testo]);
    $row[testo] = str_replace($keys[2] "" [b]$keys[2][/b] "$row[testo]); 
    ma in questo modo se la keyword è vicino ad una virgola o non c'è uno spazio prima della parola lui non la mette in grassetto giustamente.
    come posso fare?

  2. #2
    Codice PHP:
    <?php
    $pattern 
    preg_replace("#\\s*,\\s*#""|"$keywords);
    $row['testo'] = preg_replace("#\\b($pattern)\\b#""[b]$1[/b]"$row['testo']);
    ?>
    e' meglio scrivere $row['testo'] che $row[testo]

  3. #3
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    Originariamente inviato da k.b
    Codice PHP:
    <?php
    $pattern 
    preg_replace("#\\s*,\\s*#""|"$keywords);
    $row['testo'] = preg_replace("#\\b($pattern)\\b#""[b]$1[/b]"$row['testo']);
    ?>
    grazie! funziona!
    e' meglio scrivere $row['testo'] che $row[testo]
    perchè?

  4. #4
    Perche' le "barewords" sono ambigue, ti puo' andare bene come no, ad esempio nel caso tu usi una parola riservata.
    Ad esempio:

    Codice PHP:
    $array[echo] = "test"
    da' errore, mentre

    Codice PHP:
    $array['echo'] = "test"
    funziona correttamente.

  5. #5
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    ok grazie della dritta :-)

  6. #6
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    una domanda:
    se dentro $row['testo'] c'è per esempio
    $row['testo']="testo testo [img]linkimmagine[/img]";

    php mi mette anche le keywords che sono dentro l'alt in grassetto (scrive alt="keyword")
    come posso evitarlo?

  7. #7
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    up

  8. #8
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    Originariamente inviato da Gabbro
    una domanda:
    se dentro $row['testo'] c'è per esempio
    $row['testo']="testo testo [img]linkimmagine[/img]";

    php mi mette anche le keywords che sono dentro l'alt in grassetto (scrive alt="keyword")
    come posso evitarlo?

    up

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.