URLが設定されたURLと一致する場合、コードをエコーする方法はありますか?
私は次のようなメニューIDを使用してこれを実行できることを知っています。
//This is the code for the page with menu ID 3
$menuID = JSite::getMenu()->getActive()->id ;
if ($menuID == '3')
{
echo '';
}
しかし、URLが一致した場合にコードの一部をエコーできるようにしたいと思います。
はい、わかった。
以下を使用する場合:
//Get the full URL for sharing purposes
$uri = JFactory::getURI();
$absolute_url = $uri->toString();
これにより、現在のURLが取得されます。私はこれのためにifステートメントを入れることができます:
if ($absolute_url == 'http://mydomain.com/the/url/i/want/to/match/')
{
echo '';
}
http
URLとnothttps
のみを使用しているとすると、次のようにしてURLを取得できます。
$url = "http://$_SERVER[HTTP_Host]$_SERVER[REQUEST_URI]";
チェックを実行するには、これを使用できます:
if($url == "http://www.example.com/ooga/booga") {
echo "match";
}
JoomlaのAPIを使用します。これは、https
をチェックし、無効な文字の小さなクリーンアップを実行してインジェクションを防ぐため、より適切な方法です。これを行うには、以下を使用するだけです。
$url = JUri::getInstance();
echo $url->toString();
if($url == "http://www.example.com/ooga/booga") {
echo "match";
}
正確な目的が何であるかは少し異なります。 SEFおよび非SEF URLで機能する必要がありますか?目的は特定のビューを探していますか?
たとえば、特定の記事と一致させる必要がある場合は、JInputを使用して、特定のコンポーネント、ビュー、IDを確認します。この方法では、ユーザーがページにアクセスするURLは関係ありません。 SEFを有効または無効にしても問題ありません。同じ記事を指す複数のURLでも機能します。このような:
_$jinput = JFactory::getApplication()->input;
if ($jinput->get('option') == 'com_content'
&& $jinput->get('view') == 'article'
&& $jinput->get('id') == 123)
{
echo 'foo';
}
_
しかし、本当に正確なURLに一致し、すべてのバリアントを無視する必要がある場合は、JFactory::getURI();
を使用するソリューションが適切な方法です。