דבר ראשון, בוא נתחיל ממה לא עשית נכון בREGEX
PHP קוד:
$newline = preg_replace("/^e=*[a-z]|[0-9]$&/","",$line);
דבר ראשון, שים לב שקבעת שהמחרוזת תתחיל בe=..מה שלא נכון, כי המחרוזת מתחילה כקישור.
דבר שני, עשית [a-z]|[0-9], זה טופס רק תו אחד, ולא רצף של תווים.
דבר שלישי, עשית $ ולאחריה &. מה שאומר שהמחרוזת אמורה להיגמר בתו/ספרה.
אם אתה רוצה לעשות את זה עם REGEX, זה יהיה הביטוי הנכון:
PHP קוד:
$newline = preg_replace("/e=(?:[a-zA-Z0-9]+)&/", "", $line);
אתה יכול לעשות את זה בעוד דרך, ללא REGEX, על ידי פונקציות
PHP קוד:
$line = "forumdisplay.php?e=e2a32c6df5d63dee1f4eb1e0fa0e536e&f=307";
$url = explode("?", $line);
$url2 = explode("&", $url[1]);
$newline = $url[0] . "?" . $url2[1];