PHP检测字符串单词

时间:2017-10-24 11:05:50

标签: php

我有一些代码可以获取网址并将其放入变量中,然后我有另一行代码,它会在"?"之后的网址中包含所有内容。把它放到一个字符串中,最后我有另一个变量,它接受了SECOND"?"来自网址。例如:

$url = $_SERVER['REQUEST_URI'];
$query_string = parse_url($url, PHP_URL_QUERY);
$query_string2 = parse_url($query_string, PHP_URL_QUERY);

这是URL的示例:

  

http://localhost/index.php?skap?1

然后我有一些代码检查使用这些变量的网址,如果找到" skap"在url中,它应该执行一些代码,如果没有,则不执行代码。

<?php if ($query_string == "skap"): ?>

这里的问题是我检查了第一个&#34;?&#34;之后的完整网址,所以它得到了&#34; skap?1&#34;并且它为它执行代码。 虽然我的网站是建立的,所以我有一系列的链接,所以我可以将网址作为&#34; skap?1&#34; &#34; SKAP 2&#34?;等等直到&#34; skap?14&#34;。

我该怎么做才能使if语句检查是否&#34; skap&#34;在url中,如果它看到它执行代码,并忽略其他任何东西,那么如果它&#34; skap?8&#34;或者只是&#34; skap&#34;重要的是,只要能找到&#34; skap&#34;它应该执行代码。

4 个答案:

答案 0 :(得分:0)

使用preg_match。 preg_match不关心可能有什么前缀或后缀。如果匹配任何一个,它将返回true。

object

答案 1 :(得分:0)

这里是参考http://php.net/manual/en/function.strpos.php

$pos = strpos($query_string, 'skap');
if ($pos === false) {
    //The string 'skap' was not found in the string '$query_string'
} else {
    // The string 'skap' was found in the string '$query_string'"
}

答案 2 :(得分:0)

例如,拿一个这样的网址:

$url = 'http://localhost/index.php?skap?1&erer&hh=1';

这符合您的要求。

使用parse_url解析url会给你:

$components = parse_url($url);
var_dump($components);
array(2) { 
    ["path"]=> string(21) "/index.php" 
    ["query"]=> string(16) "skap?1&erer&hh=1" 
}

然后检查skap中是否存在字符串$components['query'],例如像这样:

if (strpos($component['query'] !== false) {
    // it was found, do something
}

如果&#39;跳过&#39;那么请检查应该是在字符串的开头:

if (strpos($component['query'] === 0) {
    // it was found at string's beginning, do something
}

希望这会有所帮助。 (我知道你已经使用过parse_url,但我认为一个完整的答案会更好。)

答案 3 :(得分:0)

使用爆炸&#34;?&#34;并从网址中删除域名和网页,然后我们可以使用in_array来查看单词&#34; skap&#34;在那儿。

$url = ["http://localhost/index.php?skap?1",
        "http://localhost/skap.php?flap?1"];

Foreach($url as $val){
    If(skap($val)){
        Echo "run code \n";
    }Else{
        Echo "don't run \n";
    }
}

Function skap($url){
    $arr = explode("?", $url);
    Unset($arr[0]); // remove url domain and page name

    If(in_array("skap", $arr)){
        Return true;
    }
}

返回:

run code 
don't run 

https://3v4l.org/9Xdpk