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

    Raggruppare piu' funzioni in una sola

    Ciao a tutti, sto creando uno script che prende in input un testo e come output da lo stesso testo a cui vengono sostuiti i codici per le emoticon ( ad esempio :smile: ) con la relativa faccina, le email vengono rese cliccabili cosi come i link http e ftp, e le abbreviazioni sostuite con la parola intera, le parole errate vengono sottolineate.

    Al momento ho queste funzioni, alcune sono delle perg_replace_callback, ognuna delle quali restituisce output diversi, come posso raggrupparle in modo che restituiscano un unico output?

    Codice PHP:
    function replacemail($text)
    {
    $regexemail '/\b(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*\b/i';
    $replace '<a href="mailto:$1">$1</a>';
    $text preg_replace($regexemail,$replace,$text);
    echo 
    $text;

    Codice PHP:
    function ftphtml($matches)
    {
    foreach (
    $matches as $match)
        {
        return 
    "<a href=\"$match\" target=\"_blank\">$match</a>";
        }
    }

    $regex '/\b(\s[[:punct:]])*(ftps?|https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?(\s[[:punct:]])*\b/i';
    echo 
    preg_replace_callback($regex,"ftphtml",$replacedemail); 
    Codice PHP:
    function bbcodes($text) {
        
    $bbcode = array(
        
    '/\[b\](.*?)\[\/b\]/i',
        
    '/\[i\](.*?)\[\/i\]/i',
        
    '/\[u\](.*?)\[\/u\]/i',
        
    '/\[s\](.*?)\[\/s\]/i',
        
    '/\[url\]((ftps?|https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?)\[\/url\]/i',
        
    '/\[img\](https?:\/\/)?([\da-z\.-]+[a-z\.]{2,6})([\/\da-z\.-]+)(?:jpg|jpeg|gif|png|bmp)\[\/img\]/i',
        
    '/\[quote\](.*?)\[\/quote\]/i',
        
    '/\[code\](.*?)\[\/code\]/i',
        
    '/\[style color="?([a-z0-9#]{3,20})"?\](.*?)\[\/style\]/i',
        
    '/\
    [list\](.*?)\[\/list\]/i'
        
    );
         
        
    $htmlcode = array(
        
    '<b>$1</b>',
        
    '<i>$1</i>',
        
    '<u>$1</u>',
        
    '<s>$1</s>',
        
    '<a href="$1" target="_blank">$1</a>',
        
    '<img src="$1" alt="img" />',
        
    '<blockquote><p>$1</p></blockquote>',
        
    '<pre>$1</pre>',
        
    '<font color="$1">$2</font>',
        
    '<ul><li>$1</li></ul>'
        
    );
         
        return 
    preg_replace($bbcode,$htmlcode,$text);
        } 
    Codice PHP:
    function abbreviazioni($matches)
    {
    foreach (
    $matches as $match)
        {
        
    $conn mysqli_connect('127.0.0.1','root','','esame') or die("Connection failed: " $conn->connect_error);
        
    $query mysqli_query($conn,"SELECT corrispondenza FROM `abbreviazioni` WHERE LOWER(abbreviazione) = LOWER('{$match}') ");
            while (
    $abbr mysqli_fetch_array($query,MYSQLI_ASSOC))
            {
            return 
    'Abbreviazione: '.$abbr['corrispondenza'];
            }
        
    $conn->close();
        }
    }

    $regex '/([a-z0-9.]*)/i';
    echo 
    preg_replace_callback($regex,"abbreviazioni",$text).'<br>'
    Codice PHP:
    function emoji($matches)
    {
    foreach (
    $matches as $match)
        {
        
    $conn mysqli_connect('127.0.0.1','root','','esame') or die("Connection failed: " $conn->connect_error);
        
    $query mysqli_query($conn,"SELECT link FROM `emoticons` WHERE emoji='{$match}' ");
            while (
    $link mysqli_fetch_array($query,MYSQLI_ASSOC))
            {
            return 
    "<img src=\"$link[link]\">";
            }
        
    $conn->close();
        }
    }

    $regex '/(:{1}[0-9a-z]*:{1})/i';
    echo 
    preg_replace_callback($regex,"emoji",$text).'<br>'
    Codice PHP:
    function wrongwords($text)
    {
    $words str_word_count($text,1);
    $conn mysqli_connect('127.0.0.1','root','','esame') or die("Connection failed: " $conn->connect_error);
        foreach (
    $words as $word)
        {
        
    $query mysqli_query($conn,"SELECT * FROM vocabolario WHERE vocabolo like '%$word%'");
            if(
    mysqli_num_rows($query) == 0
            {
            
    $t"<u>$word</u>";
             
    $text preg_replace("/\b$word\b/"$t$text);
             }
        }
    echo 
    $text;
    $conn->close();

    Ultima modifica di Antonio102; 27-11-2014 a 11:03

  2. #2
    Ho aggiornato le prime due funzioni, che ora sono

    Codice PHP:
    function replacemail($text)
    {
    $regexemail '/\b(\s[[:punct:]])*([a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}){1}(\s[[:punct:]])*\b/i';
    $replace '<a href="mailto:$0">$0</a>';
    return 
    preg_replace($regexemail,$replace,$text);

    Codice PHP:
    function ftphtml($text)
    {
    $regexftphtml '/\b(\s[[:punct:]])*(ftps?|https?:\/\/)([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?(\s[[:punct:]])*\b/i';
    $replace "<a href=\"$0\" target=\"_blank\">$0</a>";
    return 
    preg_replace($regexftphtml,$replace,$text);


  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Come l'ho già scritto dovresti trasformare quelle funzioni in una class OOP perche apri e chiudi le connessioni mysql ad ogni richiamo.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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.