有一个变量
$string = 'http://www.someurl.com/somerandom/page.php';
有一个输入
<input type="text" class="theurl" />
我需要验证用户添加到输入中的数据的第一部分是否与字符串的第一部分匹配。这意味着用户数据应该以:
开头http://www.someurl.com/
但不验证后面的内容,这意味着用户可以更改
somerandom/page.php
的一部分。我仍然在学习php,并且已经走了很长一段路,但这是我无法理解的。
注意我不想为用户预填充数据,也不知道变量链接的提前。我只是想要匹配和验证。也许是jquery/js和php的混合?
我甚至不知道从哪里开始。帮助吗?也许是针对我的问题的示例代码?
Update/Final
到目前为止,这是我所发现的
$re = "/http:''/''/([^''/''r''n]+)/";
$string = $baffiliate;
$newstring = preg_match($re, $string, $matches);
foreach($matches as $key=>$value)
{
$value = $value;
}
if(strpos($_POST['affiliate'], $value) === false) {
echo 'error';
}else{
...do something
}
我选择使用这个解决方案,因为它不需要在测试期间额外计数三个变量:)
可以使用STRPOS。
$string = 'http://www.someurl.com/somerandom/page.php';
if(strpos($string, 'http://www.someurl.com/') >= 0) {
echo 'valid';
} else {
echo 'invalid';
}
如果您知道字符串第一部分的长度和确切字符,您可以简单地使用substr()。
$urlLength = 23; // http://www.someurl.com/ have 23 characters
$urlText = "http://www.someurl.com/"; // What is the text you want to validate?
if (substr($string, 0, $urlLength) == $urlText) {
echo "Valid.";
}
else {
echo "Not valid.";
}
substr()函数首先接受字符串($string)。然后,如果您希望立即开始检查,则第二个参数将为'0'。接下来是要验证的字符数。