Buongiorno,
vorrei sapere se esiste una funzione simile all'str_replace ma indicando la parte di testo da cui iniziare a cancellare/sostituire e la parte di testo in cui finire la sostituzione/cancellazione...
Grazie
Buongiorno,
vorrei sapere se esiste una funzione simile all'str_replace ma indicando la parte di testo da cui iniziare a cancellare/sostituire e la parte di testo in cui finire la sostituzione/cancellazione...
Grazie
Con preg_replace() puoi usare una espressione regolare per identificare la porzione di stringa da sostituire, in alternativa puoi usare un doppio explode() per isolare il testo da sostituire.
Ho letto del preg_replace() ma non credo sia adatto... A me serve qualcosa che si adatti, tipo prendendo una cosa del genere:
Io devo andare a prendermi i valori in automatico, tipo 01.69, 12.73, 101, 138 e 1565... Come fare?Anno costruzione: 01.69 - 12.73
Potenza: 101 kW / 138 CV
Cilindri: 4
Cilindrata: 1565 cc³ / 1.6 l
Ultima modifica di Luigi636; 11-01-2016 a 19:34
E si vede che hai letto male, preg_replace() è la best practice, il doppio explode è uno stratagemma utile se non si conoscono le regex.
Ti posto un esempio pratico:
Codice PHP:
$string='Anno costruzione: 01.69 - 12.73
Potenza: 101 kW / 138 CV
Cilindri: 4
Cilindrata: 1565 cc³ / 1.6 l';
echo preg_replace( '/Cilindri: \d+/', '', $string);
Ok, farò così... Perchè non esiste un metodo che mi permetta di prendere ad esempio un valore che è tra Potenza: e kW...?
Codice PHP:
<?php
$txt = "Potenza: 101 kW / 138 CV";
$regex = "/Potenza: ([0-9]+) kW/i";
preg_match_all($regex, $txt, $risultato);
echo $risultato[1][0];
?>
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
La i sta per "case-insensitive" per cui non vi è differenza tra maiuscole e minuscole. Il + indica "uno o più" (deve essere presente almeno un carattere), così come * sta per "zero o più" ecc.
Per approfondire l'argomento puoi dare una letta alle espressioni regolari ed alla funzione preg_match()
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Ok.. Ora leggo a fondo, nel frattempo mi spiegate perchè quel $risultato[1][0]? Cosa significa? Avevo pensato ad un prelievo all'indietro ma invertendo l'1 e lo 0 non funziona...