php在url中查找字符

时间:2010-10-14 12:55:26

标签: php url joomla get

我想使用php搜索com_agora的当前网址,如果它发现它显示某些内容以及是否显示其他内容

问题是网址中的com_agora后面会有很多字符

一个例子就是这个com_agora&task=cat_view&gid=41&Itemid=

那么我怎么能告诉它找到它而不关心什么角色来了?

5 个答案:

答案 0 :(得分:5)

$uri = $_SERVER['REQUEST_URI']; // or taken from another source //
if( strpos($uri, 'com_agora') !== false ){
   // Your action goes here! //
}

如果您需要更复杂的参数操作,请使用parse_str

答案 1 :(得分:5)

我假设你在这里讨论查询字符串(?之后的部分)

对于防弹方法,请使用parse_str()拆分查询字符串并查看是否存在名为com_agora的参数。这样做的好处是它将忽略字符串中任何其他位置的搜索词的出现(例如,在另一个参数值中)。

$query_string = $_SERVER["QUERY_STRING"]; // e.g. com_agora&task=cat_view
$query_string_parsed = array();       

parse_str($query_string, $query_string_parsed); 

// Search for "com_agora"
$found = array_key_exists("com_agora", $query_string_parsed); 

答案 2 :(得分:2)

if(strpos($url, 'com_agora') !== FALSE) { /* do something */ }

答案 3 :(得分:2)

Joomla有一个允许您使用网址JURI的课程,您可以learn more about JURI class on Joomla's documentation site

这是完整功能的代码,可以执行您的操作

<?php

// Sample URL
$url = "http://www.mysite.com/index.php?option=com_agora&task=cat_view&gid=41&Itemid=5";

// Using JFactory::getURI() without parameter will give you URI of current webpage
$uri = JFactory::getURI($url);

// Here is the structure of the object
//
//object(JURI)[136]
//  public '_uri' => string 'http://www.mysite.com/index.php?option=com_agora&task=cat_view&gid=41&Itemid=5' (length=78)
//  public '_scheme' => string 'http' (length=4)
//  public '_host' => string 'www.mysite.com' (length=14)
//  public '_port' => null
//  public '_user' => null
//  public '_pass' => null
//  public '_path' => string '/index.php' (length=10)
//  public '_query' => string 'option=com_agora&task=cat_view&gid=41&Itemid=5' (length=46)
//  public '_fragment' => null
//  public '_vars' => 
//    array
//      'option' => string 'com_agora' (length=9)
//      'task' => string 'cat_view' (length=8)
//      'gid' => string '41' (length=2)
//      'Itemid' => string '5' (length=1)

// Get and output option parameter from the URI
echo 'Option = ' . $uri->getVar('option');
//  output = com_agora

?>

答案 4 :(得分:2)

当你在Joomla时,只需这样做:

$option = JRequest::getVar('option','','GET');

$ option变量将保存URL中的任何值,然后您可以:

if ($option == 'com_agora') {
  //Do something
}