у меня есть следующий код
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Tool Redirect</h1>
<?php
// define variables and set to empty values
$linkInputErr = $linkOutputErr = "";
$linkInput = $linkOutput = $categoryTag = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$linkInput = test_input($_POST["linkInput"]);
$linkOutput = test_input($_POST["linkOutput"]);
$replace = '/^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\/\n?]+)/';
if(empty($_POST["categoryTag"])){
if (empty($_POST["linkInput"])) {
$linkInputErr = "Link in entrata non presente";
} else {
$input_replace = preg_replace($replace, '', $linkInput);
$replaceLastElement = str_replace(".php","\.php$",$input_replace);
$replaceLastElementInputAMP = str_replace(".php","\.php/amp/?$",$input_replace);
}
if (empty($_POST["linkOutput"])) {
$linkOutputErr = "Link in uscita non presente";
} else {
$output_replace = preg_replace($replace, '', $linkOutput);
$outputFinale = 'rewrite '.$replaceLastElement.' '.$output_replace.' permanent';
$outputFinaleAMP = 'rewrite '.$replaceLastElementInputAMP.' '.$output_replace.'/amp'.' permanent;';
}
}else{
if ($_POST["categoryTag"] == 'Category'){
$input_replace = preg_replace($replace, '', $linkInput);
$output_replace = preg_replace($replace, '', $linkOutput);
$outputFinale = 'rewrite '.$input_replace.'/?$'.' '.$output_replace.' permanent;';
$outputFinaleAMP = '';
} else{
$input_replace = preg_replace($replace, '', $linkInput);
$output_replace = preg_replace($replace, '', $linkOutput);
$outputFinale = 'rewrite '.'/tag'.$input_replace.'/?$'.' '.$output_replace.' permanent;';
$outputFinaleAMP = '';
}
}
}
function test_input($data) {
$data = htmlspecialchars($data);
return $data;
}
?>
<p><span class="error">* required field</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<br><br>
Link in entrata: <textarea name="linkInput" rows="5" cols="40"></textarea>
<span class="error">* <?php echo $linkInputErr;?></span>
<br><br>
Link in uscita:<input name="linkOutput" type="text">
<span class="error">* <?php echo $linkOutputErr;?></span>
<br><br>
Details:
<input type="radio" name="categoryTag" value="Category">Category
<input type="radio" name="categoryTag" value="Tag">Tag
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
echo "<h2>Your Output:</h2>";
echo '<strong>Input in entrata : </strong>'.$linkInput;
echo "<br>";
echo '<strong>Output in entrata : </strong>'.$linkOutput;
echo "<br>";
echo '<textarea rows="5" cols="40">'.$outputFinale.'</textarea>';
echo "<br>";
if($outputFinaleAMP != '') echo '<textarea rows="5" cols="40">'.$outputFinaleAMP.'</textarea>';
echo "<br>";
?>
</body>
</html>
В настоящее время мой код работает, если я вставляю одну ссылку за раз, и он преобразует его в то, что я хочу.
Однако мне нужно, если пользователь вставляет больше ссылок внутри текстовой области, например, отправляя их с пробелом, каждая из которых будет преобразована в соответствии с правилами, которые я установил выше.
Я не понимаю, как я могу сделать такую вещь ? Регулярное выражение работает, я проверил его на различных сайтах, однако я не понимаю, в чем проблема.