1

簡単な質問があります。

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

基本的に、「続きを読む」をクリックすると、私のURLが表示されます。追加しました

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

の前に">

基本的に、それは表示されますID.THE-TITLE-HERE

ただし、機能していません。記事のURLの「。」の後に「-」を手動で追加すると機能しますが、機能しません。

http://www.krissales.com/#/media/blogにアクセスすると、私が何を意味するのかがわかります。

「続きを読む」を押すと何も表示されませんが、「テスト」と「2」の間に「-」を追加すると機能します。

誰かが私がこれを修正する方法を知っていますか?何ができるか教えてください。それをしながら同時に学びたいです。

完全な.phpページはkrissales.com/blog.txtにあります

御時間ありがとうございます。

4

3 に答える 3

2

変化する

echo $row['news_title']

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

これにより、空白がハイフンに置き換えられます

于 2012-11-08T22:40:39.747 に答える
2

私がこれを入力しているときに他の誰かが簡単な答えを出したことに気づきましたが、私の答えはあなたがもう少し理解するのに役立つと思います。

最初のテスト:

  • 「http://www.krissales.com/media/3」は機能します
  • 「http://www.krissales.com/#/media/3」は機能します
  • 「http://www.krissales.com/#/media/3.Testing3」は機能しません。
  • 「http://www.krissales.com/#/media/3.Testing-3」は機能します。
  • 「http://www.krissales.com/#/media/3.Testing%203」は機能します(%20はスペースに相当するURLエンコードされた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']); ?>

これは機能しますが、コアで問題が修正されるとは思いません。コアでは、おそらく呼び出し(/_lib/_js/core.jsファイルのコード)などを処理します。

PS URL変数、HTMLコンテンツなどを必ずエスケープする必要があります。これらの関数は、PHP urlencode()、htmlspecialchars()で参照してください。ただし、他の言語(javascriptなど)でコードをビルドする場合は、同じロジックが適用されます。 。これは、URLの処理方法など、コードの主要な問題を何らかの形で隠す可能性があります。これは、ソフトウェア開発における複数の問題の原因です。;-)

于 2012-11-08T23:09:31.043 に答える
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 に答える