PHP URL配置

时间:2012-11-08 22:35:48

标签: php

我有一个简单的问题。

<a href="#/media/<?php echo $row['id'] ?>.<?php echo $row['news_title'] ?>">Read More</a>

基本上,一旦我点击“阅读更多”,它就会显示我的网址。我添加了

.<?php echo $row['news_title'] ?>
">

之前

基本上,它会显示ID.THE-TITLE-HERE

然而,它不起作用,当我在“。”之后手动添加文章的网址中的“ - ”时它确实有效,但它不起作用。

如果你去http://www.krissales.com/#/media/blog

,你会明白我的意思

点击“阅读更多”并且它不会显示任何内容,但如果在“测试”和“2”之间添加“ - ”,它将起作用。

有谁知道如何解决这个问题?告诉我我能做什么,我想在做的同时学习。

完整的.php页面位于krissales.com/blog.txt

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

更改

echo $row['news_title']

echo str_replace(" ","-",$row['news_title']);

这将用连字符

替换空白区域

答案 1 :(得分:2)

我注意到有人在我输入时给出了简单的答案,但我认为我的答案会帮助你进一步理解。

首先是测试:

  • “http://www.krissales.com/media/3”正常工作
  • “http://www.krissales.com/#/media/3”正常工作
  • “http://www.krissales.com/#/media/3.Testing 3”不起作用。
  • “http://www.krissales.com/#/media/3.Testing-3”有效。
  • “http://www.krissales.com/#/media/3.Testing%203”有效(%20是URL编码的等效空间)。

问题可能在于如何处理哈希标记等。

首先,根据我所知,你可以通过多种方式实现它:

  1. 而不是: <?php echo $row['news_title'] ?> 你可以用 <?php echo urlencode($row['news_title']) ?> 这将确保没有使用空间。

  2. 如果您更喜欢用破折号替换空格,那么您可以使用str_replace()函数(http://www.php.net/str_replace),如下所示: <?php echo str_replace(' ', '-', $row['news_title']); ?>

  3. 这样可行,但是,我觉得这不能解决核心问题,这可能是你处理调用的地方(你的/_lib/_js/core.js文件中的代码)等。

    P.S。您需要确保转义URL变量,HTML内容等。 - 请参阅PHP urlencode(),htmlspecialchars()中的这些函数 - 但如果您使用其他语言(如javascript)构建代码,则应用相同的逻辑。这可能会以某种方式隐藏代码中的核心问题以及如何处理URL等。它是软件开发中多个问题的根源。 ; - )

答案 2 :(得分:1)

如果$row['id']为99且$row['news_title']为“标题”,则以下代码将使用str_replace输出“99.-title”。

<a href="#/media/<?php echo $row['id'] ?>.<?php echo str_replace(" ", "-", $row['news_title']); ?>">Read More</a>