Visualizzazione dei risultati da 1 a 4 su 4

Discussione: da [url] a <a href>

  1. #1

    da [url] a <a href>

    Ciao a tutti,
    nella home page del mio sito c'è uno script in php che mi riporta l'ultimo topic nel blog. Solo che i link sono scritti come [ url] link [ /url] e nella home ho l'effetto indesiderato che html me lo riscrive pari pari...
    C'è un modo per trasformare i link url in href?

    Grazie!

    Ivan
    Da: "LA LEGGE DI MURPHY"
    Le cose vengono danneggiate in proporzione al proprio valore

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/preg_replace

    Oppure cercare con google php bbcode

  3. #3
    Ivan potresti provare con le espressioni regolari, ti conviene fare una ricerca sulle funzioni
    ereg
    eregi
    ereg_replace
    eregi_replace
    un esempio potrebbe essere

    per trasformare
    Visit [L]http://www.prova.net/[EL]
    in
    Visit <a href="http://www.prova.net/">http://www.prova.net/<a>

    usiamo una espressione regolare che identifichi il link

    \[L][-_./a-z0-9!&%#?+,':;@]+)\[EL]

    la funzione

    $variabile = eregi_replace('\\[L][-_./a-z0-9!&%#?+,':;@]+)\\[EL], '<a href="\\1">\\1<\a>', $variabile_contenente_la_stringa);

    \\1 rappresenta la prima parte tra parentesi dell'espressione regolare \\2 la seconda e così via

    Puoi partire da questop esempio e con qualche minima modifica per adattarlo al tuo caso dovrebbe andare.

    Spero di esserti stato utile, ciao.

  4. #4

    RISOLTO

    Intanto grazie per le tempestive risposte!
    Con il vostro aiuto e qualche info trovata su internet sono finalmente riuscito a portare i bbcode nelle mie pagine php. Posto quello che ho fatto sperando di fare cosa gradita:

    <?php

    $search = array(
    '/\[b\](.*?)\[\/b\]/is',
    '/\[i\](.*?)\[\/i\]/is',
    '/\[u\](.*?)\[\/u\]/is',
    '/\[img\](.*?)\[\/img\]/is',
    '/\[url\](.*?)\[\/url\]/is',
    '/\[url\=(.*?)\](.*?)\[\/url\]/is',
    '/\\n/is'
    );
    $replace = array(
    '$1',
    '$1',
    '<u>$1</u>',
    '[img]$1[/img]',
    '$1',
    '$2',
    '
    '
    );

    $data = QUERY RELATIVA ALL'ULTIMO TOPIC DEL BLOG
    echo preg_replace($search, $replace, $data);

    // PORTO LA DATA AL MODELLO ITALIANO,
    // nel mio db viene memorizzata come 2008-06-30 23:46:00

    $searchtime = "/^(.{4})-(.{2})-(.{2}) (.{2}) : (.{2}) : (.{2})$/";
    $replacetime = "\$3-\$2-\$1 \$4:\$5:\$6";
    echo preg_replace($searchtime, $replacetime, $time);
    ?>

    Brevemente: ho creato l'array di bbcode e l'array della rispettiva traduzione html e ho usato preg_replace per vedere se in $data ci fosse presente qualcuno dei caratteri del primo array. Dove li trova sostituisce, altrimenti lascia il testo intatto.
    Stessa cosa per la formattazione della data: non c'è stato bisogno di array ma ho dovuto dirgli in che formato si trova $time nel database e come modificarlo.

    Grazie ancora

    Ivan
    Da: "LA LEGGE DI MURPHY"
    Le cose vengono danneggiate in proporzione al proprio valore

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.