da una stringa devo prelevare una sottostringa di questo seguente formato "x 6 numeri consecutivi y finale" cioè x123654y" (x e y può essere sia maiuscolo che minuscolo).
x123y4y non deve essere preso perché in mezzo a x e y ci sono solo 3 numeri
codice:$txt = 'ciao questo è un testo e il suo formato da prendere è x123456y e non deve essere preso altro'; substr_xy($txt); $txt = 'ciao questo è un testo e questo formato è x123456 e non deve essere preso'; substr_xy($txt); $txt = 'ciao questo è un testo e il suo formato da prendere è x123456y e non deve essere preso altro X12y456y'; substr_xy($txt);lo script funziona, ma vorrei sapere ci sono altri casi particolari che deve tenere conto?codice:function substr_xy($txt) { $pos_x = stripos($txt, 'x'); $sottostringa = substr($txt, $pos_x); $pos_x = stripos($sottostringa, 'x'); $pos_y = stripos($sottostringa, 'y'); if ($pos_x==false && $pos_y==false) return false; $sottostringa = substr($sottostringa, $pos_x, $pos_y + 1); $solo_numeri = substr($sottostringa,1,-1); if (is_numeric($solo_numeri) && strlen($solo_numeri)==6) { return $sottostringa; } return false; }
una soluzione più "snella" con le espressione regolare?

Rispondi quotando