Ciao, la variabile $content non viene modificata perché la stai passando alla funzione come valore e non come riferimento.
Dentro la funzione avrai quindi una variabile locale ($content) definita come argomento della funzione stessa ma sarà diversa da quella definita fuori dalla funzione. Anche se entrambe hanno lo stesso nome, sono definite in due ambiti diversi.
Per risolvere puoi riassegnare alla variabile esterna ciò che viene restituito dalla funzione (mantenendola così come è), come suggerito da filippo.toso:
Codice PHP:
...
$content = pulisciarr($content);
echo $content;
Oppure puoi passare la variabile come riferimento:
Codice PHP:
function pulisciarr(&$var){...}
...
pulisciarr($content);
echo $content;
vedi documentazione: https://www.php.net/manual/en/langua...ences.pass.php
In questo caso, dentro la funzione non hai bisogno del return, dal momento che la stessa variabile (definita esternamente alla funzione) viene modificata direttamente attraverso la funzione a cui è passata come riferimento.
NOTA: in entrambe i casi, che si passi la variabile per valore o per riferimento, non è obbligatorio che il nome dell'argomento, definito nella funzione, coincida con quello della variabile esterna.
Tra le altre cose, queste due righe:
Codice PHP:
$content = substr($content,10);
$content = substr($content, 0, -2);
possono essere ridotte ad una sola, in questo modo:
Codice PHP:
$content = substr($content, 10, 2);