J'ai un script qui analyse une URL. Si la requête contient l'utilisateur et le mot de passe, il va récupérer cette.
Je tiens donc à garder le PHP requête si nécessaire.
Add-Type -AssemblyName System.Web
$url = "http://toto.site:8080/user/password12349876toolong/2716?checkedby:toto.net"
$uri = [System.Uri]$url
$query = $uri.Query
$IPTVhost = $uri.Host
$IPTVport = $uri.Port
$Segments = $uri.Segments.TrimEnd('/')
$proto = $uri.Scheme
$ParsedQueryString = [System.Web.HttpUtility]::ParseQueryString($uri.Query)
if(!$query) {
if ($Segments[1].TrimEnd('/') -eq "live"){
$username = $Segments[2].TrimEnd('/')
$password = $Segments[3].TrimEnd('/')
}
else
{
$username = $Segments[1].TrimEnd('/')
$password = $Segments[2].TrimEnd('/')
}
}
else {
$username = $ParsedQueryString['username']
$password = $ParsedQueryString['password']
}
cls
if (!($url -like '\?checkedby\:'))
{
echo "this is a chekedby url"
$filter = $url.TrimEnd("\?checkedby\:toto.net")
echo "filter : $filter"
}
echo "url: $url"
echo "query: $query"
echo "host: $IPTVhost"
echo "port: $IPTVport"
echo "segment: $Segments"
echo "proto: $proto"
echo "username: $username"
echo "password: $password"
Je voudrais filtrer une chaîne de caractères quand je entrer une URL dans mon script (qui est souvent trouvé dans la requête mais pas toujours).
Je sais qu'il commence toujours par "? Checkedby:"
ou "& checkedby:"
et est toujours à la fin de l'url.
Problématique: la chaîne est variable, elle peut être:
http://toto.com:8080/get.php?username=toto&password=toto&checkedby:titi.com
ou
http://toto.com/1234/4321/5678?checkedby:anyone.xyz
ou
http://toto.com/1234/4321/5678?master.m3u8&checkedby:anyelse.to
ou cette merde :
http://toto.com:8080/get.php?username=toto&password=toto&type=output.ext?checkedby:titi.com
J'ai essayé plusieurs méthodes TrimEnd mais rien n'y fait. La seule chose qui fonctionne est une expression exacte comme:
$filter = $url.TrimEnd("\?checkedby\:toto.net")
mais cela ne fonctionne pas (et c'est normal) avec une url qui se termine par:
&checkedby:another.com.
Donc, la question :
Comment faire pour supprimer tout ce qui commence par:
&checkedby:
ou
?checkedby:
Je vous remercie.