【问题标题】:php masking string with another stringphp用另一个字符串掩盖字符串
【发布时间】:2019-03-07 04:41:25
【问题描述】:

有什么方法可以用变量中的另一个字符串来屏蔽 URL 中的字符串? 我有这些变量

$keyword = 'stackoverflow';
$foo = $keyword;
$bar = 'main-category';

我想在浏览器中显示的是:http://example.com/main-category/page=2 但此 URL 将向:http://example.com/$keyword/page=2

发出请求

请不要告诉我它可以用 htaccess 来实现,因为关键字是动态变化的,而且在客户端也是如此,并非所有用户都可以修改 htaccess / nginx.conf

edit : 上面的网址只是一个说明,我的意思是 如何用 $bar 变量调用 $keyword 变量

我试过了

$foo = $bar
echo $foo

这确实与“主类别”相呼应,但它没有传递真正的 $foo 变量

谢谢。

【问题讨论】:

  • 我很困惑,这只会产生三个变量,而且我看不出它与 url 有什么关系。它可能在但不在提供的代码中。在任何情况下,如果您希望将值放入字符串(变量插值)中,请使用双引号或将其连接起来。 "http://example.com/$keyword/page=2" 虽然我更喜欢 "http://example.com/{$keyword}/page=2",因为它更具可读性。或'http://example.com/'.$keyword.'/page=2'
  • 我想他是在问如何从“main-category”是变量的 url 中检索动态变量?
  • 我已经编辑了我的问题,很抱歉造成混乱

标签: php url masking


【解决方案1】:

仍然完全不清楚您要在什么上下文中应用另一个变量。或者为什么。

无论如何,在任何人提到 varvars 之前,您可能需要一张简单的地图:

$map = array(
     "main-category" => "stackoverflow",
     '$keyword' => "bazbazbaz",
);
$bar = "main-category";
$foo = $map[$bar];

这允许在应用程序上下文中“重写”关键字或变量样式的占位符。

【讨论】:

  • 如果您有别的意思,请不要发表评论。不在乎。
【解决方案2】:

我有一个解决方案,但基于 htaccsess 的方式。

您将在获取参数上使用关键字。

按照这些步骤:

1) 将此 RewriteRule 添加到 .htaccsess 文件中

RewriteRule test/(.*)/page=2?$ test2.php?keyword=$1 [L]

2) 在你的主文件夹中创建 test2.php(你可以随意命名文件,通常开发人员使用 index.php 来处理所有此类请求)

并将这些代码放入页面中

$keyword = htmlscpecialchars($_GET['keyword']);

echo "The keyword is "$keyword;

这样你就会得到关键字。不要忘记您的网址将是 http://example.com/test/{keyword}/page=2 。您可以更改或删除“测试”部分。

最好的问候。

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2013-12-03
    • 2019-05-14
    • 2021-06-15
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多