检查URL中是否出现一次字符

时间:2012-11-18 22:28:59

标签: php

我的问题

我想检查网址是否包含一个?,如果为true,则do something

我的PHP

我目前正在使用此脚本。

$lp_uri = $_SERVER['REQUEST_URI']; // or taken from another source //
    if( strpos($lp_uri, '?') !== false ){
    echo '<script>alert("one question mark");</script>';
}

我的问题

我不确定如何检查?是否只出现 。你能帮忙吗?谢谢堆

原因

我的网站上有联系表单,一旦有人提交,就会在网址中添加一个参数,使其看起来像website.com?msgsent=1。这意味着邮件已发送。但有时如果email字段不正确,它仍会在网址中添加?,以便网址看起来像website.com?

现在,我在联系表单上使用jQuery slideDown延迟来吸引客户注意力,每次页面刷新时,slideDown只需几秒钟。如果网址中包含?,我想克服此问题,因为如果网址看起来website.com?,则表示电子邮件地址错误。

希望这是有道理的。

2 个答案:

答案 0 :(得分:4)

初始问题的解决方案(以防万一有人会在谷歌上发现此问题)是使用substr_count

if(substr_count($text, '?') == 1){
    // do something
}

问题的解决方案是检查是否设置了msgsent参数:

if(!isset($_GET['msgsent'])){
    // message not sent - do something
}

答案 1 :(得分:0)

使用偏移可选参数

的可能解决方案
<?php
if( strpos($lp_uri, '?') !== false ){ 
   //1 or more question marks
   $pos = strpos($lp_uri, '?');  //Grab the position of it
   if(strpos($lp_uri, '?',$pos) === false) {
      //No more after the first, hence only 1
   }
}