为什么$ _SERVER ['REQUEST_URI'不支持IF条件

时间:2018-10-30 04:05:27

标签: php server echo request-uri

我的网页网址是http://example.com/blog/

当我回声时,它会以博客形式显示正确的结果。

echo $_SERVER['REQUEST_URI']

>>blog

但是,当我在if条件中使用

<?php if($_SERVER['REQUEST_URI']== 'blog') echo 'class="Margincls"';?>

它不返回任何东西,也尝试使用basename和strtolower

6 个答案:

答案 0 :(得分:0)

您使用的报价错误。复制并粘贴:

<?php if($_SERVER['REQUEST_URI']== 'blog') echo 'class="Margincls"';?>

答案 1 :(得分:0)

如果您的网址是http://example.com/blog/,则$_SERVER['REQUEST_URI']应该是/blog/。我检查了我的环境-Apache,PHP 5.6。

参考:http://php.net/manual/en/reserved.variables.server.php

答案 2 :(得分:0)

$ _ SERVER ['REQUEST_URI']还会返回第一个正斜杠,因此在对等时需要进行检查。

<?php if($_SERVER['REQUEST_URI']== '/blog') echo 'class="Margincls"';?>

答案 3 :(得分:0)

<?php if($_SERVER['REQUEST_URI']== "blog") echo 'class="Margincls"';?>

添加双引号解决了这个问题。

答案 4 :(得分:0)

这应该有效

const {
  patientData, gpData, ailmentData, surgeryData,
} = require('../data/index.js');

exports.seed = (knex: any, Promise: any) => knex.migrate
  .rollback()
  .then(() => knex.migrate.latest())
  .then(() => {
    const surgeries = knex('surgeries')
    .insert(surgeryData)
    const patients = knex('patients').insert(patientData).returning('*');
    const gps = knex('gps').insert(gpData).returning('*')
    return Promise.all([surgeries,patients, gps])
  })
  .then(([patients, gps]) => {
    console.log(patients, '<-- patients')
    console.log(gps, '<-- GPs')
    // const ailments = knex('ailments').insert
    // (ailmentData).returning('*')
    return knex('surgeries', 'gps', 'patients')
      .returning('*')
  })

答案 5 :(得分:0)

我认为您的网站是在线的。如果仅使用$ _SERVER ['REQUEST_URI'],它将仅在localhost中工作。

您可以尝试一下。

  if (strpos($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], '/blog/') == true){
         echo "Hello world";
    }else{
        echo "Hello WOrld 2";
    }