Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    105

    Rimuovere dash/trattino (-) da stringa solo quando è seguito da un whitespace

    ciao,
    ho la seguente funzione che strippa delle parole (poi fa pure altro ma il problema non è quello...) solo quando non fanno parte di altre parole composte, ma non il carattere dash - e mi serve anche quello... cioè io voglio scegliere di poter rimuovere qualsiasi cosa digito per come la vedo sullo schermo...
    codice:
    function stripwords($string) 
    { 
      // build pattern once 
      static $pattern = null; 
      if ($pattern === null) { 
        // pull words to remove from somewhere 
        $words = array('uno', 'due', 'tre', 'quattro', '-');  
        // escape special characters 
        foreach ($words as &$word) { 
          $word = preg_quote($word, '#'); 
        } 
        // combine to regex 
        $pattern = '#\b(' . join('|', $words) . ')\b\s*#iS'; 
      } 
      
      $print=preg_replace($pattern, '', $string);
      list($firstpart)=explode('+', $print);
      return $firstpart;
        
    }
    cosa devo modificare? grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    105
    nessuno mi aiuta?

  3. #3
    non ho capito che ci devi fare con questo trattino
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    105
    Originariamente inviato da Santino83_02
    non ho capito che ci devi fare con questo trattino
    ciao Santino83_02...
    lo devo eliminare il trattino dalla pattern...come avviene per le parole...
    e purtroppo non ci riesco, ho tentato in qualche modo..

  5. #5
    Codice PHP:

    $words 
    'ciao - mondo-- crudele----';

    print_r(preg_replace('/[\\\-]*/',$words)); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Originariamente inviato da Santino83_02
    Codice PHP:

    $words 
    'ciao - mondo-- crudele----';

    print_r(preg_replace('/[\\\-]*/',$words)); 
    Un modo contorto (nonche' errato, manca il secondo parametro) per scrivere
    Codice PHP:
    echo str_replace('-'''$words

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    105
    grazie ragazzi ...però io dovrei integrarla con quella che ho già...
    e vi spiego meglio: io da words non devo togliere nulla... perché non scrivo il trattino come parola+trattino... uno- NO
    il trattino lo deve togliere come se lo scrivessi a mò di word anch'esso...
    cioè 'uno', 'due', 'tre', (ma anche) '-'
    qualsiasi cosa scrivo nell'array words, la function lo deve eliminare

  8. #8
    Originariamente inviato da k.b
    Un modo contorto (nonche' errato, manca il secondo parametro) per scrivere
    Codice PHP:
    echo str_replace('-'''$words
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    105
    fortunatamente ho risolto, se può servire a qualcuno la pattern corretta è:
    codice:
    $pattern = '#(?<=\s|\A)(' . join('|', $words) . ')(?=\s|\Z)\s*#iS';
    la funzione rimuove qualsiasi parola contenuta nell'array solo quando non fa parte di parole composte e si occupa di eliminare spazi eccessivi... e anche caratteri come -

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.