Множественное значение - PullRequest
0 голосов
/ 24 апреля 2020

у меня есть следующий код

    <!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>

В настоящее время мой код работает, если я вставляю одну ссылку за раз, и он преобразует его в то, что я хочу.

Однако мне нужно, если пользователь вставляет больше ссылок внутри текстовой области, например, отправляя их с пробелом, каждая из которых будет преобразована в соответствии с правилами, которые я установил выше.

Я не понимаю, как я могу сделать такую ​​вещь ? Регулярное выражение работает, я проверил его на различных сайтах, однако я не понимаю, в чем проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...