1

我有一个快速的问题。

<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

谢谢你的时间。

4

3 回答 3

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']) ?> which 将确保没有使用空间。

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

这将起作用,但是,我认为这不能解决核心问题,这可能是您处理调用的地方(/_lib/_js/core.js 文件中的代码)等。

PS 你需要确保你转义 URL 变量、HTML 内容等——在 PHP urlencode()、htmlspecialchars() 中查看这些函数——但如果你用其他语言(如 javascript)构建代码,同样的逻辑适用. 这可能会以某种方式隐藏代码中处理 URL 等的核心问题。它是软件开发中多个问题的根源。;-)

于 2012-11-08T23:09:31.043 回答
2

改变

echo $row['news_title']

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

这将用连字符替换空格

于 2012-11-08T22:40:39.747 回答
1

如果$row['id']是 99 并且$row['news_title']是“标题”,那么下面的代码将用于str_replace输出“99.The-title”。

<a href="#/media/<?php echo $row['id'] ?>.<?php echo str_replace(" ", "-", $row['news_title']); ?>">Read More</a>
于 2012-11-08T22:45:20.410 回答