PHP найти символы в URL - PullRequest
       5

PHP найти символы в URL

0 голосов
/ 14 октября 2010

Я хочу использовать php для поиска в текущем URL-адресе com_agora, и если он находит, что он отображает что-то, и если он не отображает что-то другое

, проблема в том, что может быть много символовпосле com_agora в URL-адресе

пример будет такой com_agora&task=cat_view&gid=41&Itemid=

, как мне сказать, чтобы он нашел его, не заботясь о том, какие символы идут после?

Ответы [ 5 ]

5 голосов
/ 14 октября 2010

Я предполагаю, что вы говорите о строке запроса здесь (часть после ?)

Для пуленепробиваемого подхода используйте 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); 
5 голосов
/ 14 октября 2010
$uri = $_SERVER['REQUEST_URI']; // or taken from another source //
if( strpos($uri, 'com_agora') !== false ){
   // Your action goes here! //
}

Если вам нужны более сложные операции с параметрами, используйте parse_str.

2 голосов
/ 20 октября 2010

Поскольку вы находитесь в Joomla, просто сделайте это:

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

Переменная $ option будет содержать значение того, что есть в URL, и вы можете перейти:

if ($option == 'com_agora') {
  //Do something
}
2 голосов
/ 15 октября 2010

Joomla имеет класс, который позволяет вам работать с URL JURI, вы можете узнать больше о JURI классе на сайте документации Joomla .

Вот полностью функциональный код, который будет делать то, что вы делаете

<?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

?>
2 голосов
/ 14 октября 2010
if(strpos($url, 'com_agora') !== FALSE) { /* do something */ }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...