Salve a tutti,
ho un problema nel dividere una stringa in piu' parti, in modo da rielaborarla e ricostruirla in seguito. Questi sono dei possibili esempi di stringhe:
Pippo + Pluto (Paperino - Paperoga)
Paperon de' Paperoni - Gastone (Qui + Quo + Qua)
Allora: io voglio dividere la stringa usando come delimitatori +, -, ( e ). La sequenza di questi quattro caratteri non e' fissa, non esistono altri possibili e non e' detto che ci siano tutti. Ogni sottostringa viene cercata in un database, e se e' presente, viene aggiunto un link ad un sito web.
Al momento ho visto 3 soluzioni:
- strtok($stringa_originale, "+-()");
- split('[)+(-]', $stringa_originale); // usando le regular expression
- un metodo ricorsivo di explode() che al momento e' un po' difficile dirlo;
I primi due metodi funzionano alla perfezione, pero' non riesco a sapere quale dei quattro delimitatori e' stato usato e non posso ricostruire la stringa nel modo giusto.
Per esempio: Pippo + Pluto (Paperino - Paperoga) mi ritorna un array con: 0=> Pippo, 1=> Pluto, 2=>Paperino, 3=>Paperoga. Pero' in questo modo, non so piu' quale dei delimitatori e' stato trovato e quindi non saprei come rimetterlo.
L'unica che mi viene e' che per ogni stringa dell'array, cerco il primo carattere non di spaziatura successivo (quindi per Pippo e' +, per Pluto e' (, etc...)
Qualcuno ha capito quello che ho detto e ha una soluzione migliore? (Se rispondete si' alla prima domanda, siete gia' dei maghi...)
Ciao a tutto il forum....
Dave