2013-09-02 4 views
0

Я пытаюсь создать ссылку из MySQL результатов:Построить HREF из MySQL результатов

while($row = $result->fetch_assoc()){ 
    echo "<a class=post_link href=http://localhost:8888/search.php?loc=".$row['loc']."&lt=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ; 
} 

Проблема заключается в том, когда «LOC» строка содержит более одного слова. Можно ли определить, когда у него есть два или более слова, и вставить «%» между ними, или мне нужно использовать другую технику?

ответ

3

Используйте функцию PHP urlencode(). Эта функция удобна при кодировании строки, которая будет использоваться в части запроса URL-адреса. Более подробная информация: http://php.net/manual/en/function.urlencode.php

while($row = $result->fetch_assoc()){ 
    echo "<a class=post_link href=http://localhost:8888/search.php?loc=".urlencode($row['loc'])."&lt=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ; 
} 
0

Или вы можете использовать ereg_replace, так как UrlEncode (предположительно, нет личного опыта) иногда не действует немного странно:

while($row = $result->fetch_assoc()){ 
    $loc = ereg_replace("[ \t\n\r]+", "%", $row['loc']); 
    echo "<a class=post_link href=http://localhost:8888/search.php?loc=".$loc."&lt=".$row['lt']."&lg=".$row['lg'].">".$row['loc'].": ".$row['lt'].", ".$row['lg']."</a><br>" ; 
} 

Это также заменяет новые строки и символы табуляции.

Смежные вопросы