ฉันมีสคริปต์นั่น parses เป็นที่อยู่ URL ได้ ถ้าการบรรจุของผู้ใช้และรหัสผ่านที่มันจะเก็บเรื่องนี้
ฉันคงเพราะฉะนั้นอย่างเพื่อให้ PHP query ถ้าจำเป็น
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"
ฉันอยากจะเป็นตัวกรองข้อความของตัวอักษรตอนที่ผมป้อนที่อยู่ URL ในสคริปต์ของฉัน(ซึ่งก็คือบ่อยนักพบใน query แต่ไม่เสมอ).
ฉันรู้ว่ามันจะเริ่มด้วยเสมอ "? Checkedby:"
หรือ "& checkedby:"
และเป็นเสมอตอนจบของที่อยู่ url ได้
Problematic:เจ๋งสุดยอดแฟลตต่างหาคือตัวแปรมันจะเป็น:
http://toto.com:8080/get.php?username=toto&password=toto&checkedby:titi.com
หรือ
http://toto.com/1234/4321/5678?checkedby:anyone.xyz
หรือ
http://toto.com/1234/4321/5678?master.m3u8&checkedby:anyelse.to
หรือลิ้นชักตู้จีนเก็บจานชา:
http://toto.com:8080/get.php?username=toto&password=toto&type=output.ext?checkedby:titi.com
ฉันพยายามหลายวิธีการของกับ TrimEnd แต่ไม่มีอะไรช่วยได้ สิ่งเดียวที่ทำงานเป็นมือแสดงเหมือน:
$filter = $url.TrimEnd("\?checkedby\:toto.net")
แต่นั่นไม่ได้ทำงาน(และนั่นมันเป็นเรื่องธรรมดา)กับที่อยู่ url ที่จบลอยู่ใน:
&checkedby:another.com.
ดังนั้นคำถาม:
ยังไงจะลบทุกอย่างที่เริ่ม:
&checkedby:
หรือ
?checkedby:
ขอบคุณ