Pour un projet j'aurais besoin de modifier des "bouts" de scripts. Il ne s'agit pas de remplacer un mot mais par exemple une fonction toute entière dans une classe. C'est pourquoi je me penche sur le powershell pour remplir cette tache.

ce que je pensais faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$cheminfichier = 'class.secure.php'
$before = @"
    static function xss_aff($string='')
    {
		if(!empty($string)) return @trim(@htmlentities(@stripslashes($string), ENT_QUOTES));
		return $string;
	}
"@
$after = @"
	static function xss_aff($string='', $charset='')
	{
		$char = ($charset == '') ? "UTF-8" : '';
		if(!empty($string)) return @htmlentities(@stripslashes(@trim($string)), ENT_QUOTES, $char);
		return $string;
	}
"@
(get-content $cheminfichier) | foreach-object {$_ -replace $before, $after} | set-content $cheminfichier
mais rien n'est remplacé dans ce fichier
donc :
1 - est-ce possible d'utiliser la syntaxe here-string pour ce genre d'utilisation ? (la syntaxe fonctionne si $before et $after sont des chaines "classiques", mais je n'ai pas envie de m'embéter à faire de l'escape)
2) Y'a t'il un autre moyen ?

Merci