php 如果表单标签不存在则添加操作
php add action to form tag if not exists
我有以下表单标签
$content = '<form action="link.php" method="post" class="form-inputs">';
$content1 = '<form method="post" class="form-inputs">';
所以使用我的正则表达式代码:
preg_replace("~<form\s(.|\n)*?>~i",'<form action="linkafterreplace.php" method="post">', $content);
当我对 $content 和 $content1 使用此代码时,我得到的是:
<form action="linkafterreplace.php" method="post">
问题是我的代码无法获取 class 属性或 id 属性。
我想要的是:
<form action="linkafterreplace.php" method="post" class="form-inputs">
ps :我要替换许多 url,所以每个 url 都有自己的 class 属性,所以它可能不是表单输入
您的正则表达式目前正在抓取整个表单标签并将其替换为
<form action="linkafterreplace.php" method="post">
解决此问题的最佳方法是检查
是否存在
<form
并将其替换为
<form action="linkafterreplace.php" method="post"
你需要的电话是(我没有测试过,因为我在没有 PHP 的电脑上):
preg_replace("~<form~i",'<form action="linkafterreplace.php" method="post"', $content);
希望这是有道理的...
编辑:
由于评论,我正在稍微修改我的答案。同样,我没有带 PHP 的计算机,因此语法可能略有偏差。
检查表单标签是否有动作元素最简单的方法是使用preg_match,像这样:
if (preg_match("~action=~i")) { // Check to see if you find "action="
preg_replace("~action=\".*\"~i", "action='linkafterreplace.php'", $content); // IFF so, replace it using regex.
} else {
preg_replace("~<form~i",'<form action="linkafterreplace.php"', $content); // Otherwise add it it.
}
我只是使用正则表达式来检查表单元素内部是否存在 "action="。如果是这样,我使用正则表达式替换来输入新文件名。否则,我使用正则表达式添加到开头,就像我原来的答案一样。
希望对你更好!
我有以下表单标签
$content = '<form action="link.php" method="post" class="form-inputs">';
$content1 = '<form method="post" class="form-inputs">';
所以使用我的正则表达式代码:
preg_replace("~<form\s(.|\n)*?>~i",'<form action="linkafterreplace.php" method="post">', $content);
当我对 $content 和 $content1 使用此代码时,我得到的是:
<form action="linkafterreplace.php" method="post">
问题是我的代码无法获取 class 属性或 id 属性。 我想要的是:
<form action="linkafterreplace.php" method="post" class="form-inputs">
ps :我要替换许多 url,所以每个 url 都有自己的 class 属性,所以它可能不是表单输入
您的正则表达式目前正在抓取整个表单标签并将其替换为
<form action="linkafterreplace.php" method="post">
解决此问题的最佳方法是检查
是否存在<form
并将其替换为
<form action="linkafterreplace.php" method="post"
你需要的电话是(我没有测试过,因为我在没有 PHP 的电脑上):
preg_replace("~<form~i",'<form action="linkafterreplace.php" method="post"', $content);
希望这是有道理的...
编辑:
由于评论,我正在稍微修改我的答案。同样,我没有带 PHP 的计算机,因此语法可能略有偏差。
检查表单标签是否有动作元素最简单的方法是使用preg_match,像这样:
if (preg_match("~action=~i")) { // Check to see if you find "action="
preg_replace("~action=\".*\"~i", "action='linkafterreplace.php'", $content); // IFF so, replace it using regex.
} else {
preg_replace("~<form~i",'<form action="linkafterreplace.php"', $content); // Otherwise add it it.
}
我只是使用正则表达式来检查表单元素内部是否存在 "action="。如果是这样,我使用正则表达式替换来输入新文件名。否则,我使用正则表达式添加到开头,就像我原来的答案一样。
希望对你更好!