Допустим, у меня есть:
$string = '2Pac - Dear Mama';
и БД, как это:
id - some number
artist_name - 2Pac
alternative_name - Tupac
artist_slug - 2pac
Как преобразовать строку в нечто вроде:
<a href="//example.com/artist/2pac/">2Pac</a> - Dear Mama
даже если строка $ будет:
$string = 'Tupac - Dear Mama';
, преобразуйте ее в:
<a href="//example.com/artist/2pac/">Tupac</a> - Dear Mama
Может ли кто-нибудь мне помочь?Заранее спасибо.
// позднее редактирование
Я уже использую эту функцию, но мне было интересно, как проверить, есть ли у исполнителя больше имен, и сохранить ту же страницу
function artist_name($title){ global $site_url;
$words = explode("-", $title); $result = array();
foreach ($words as $word){
$word = trim($word);
$res = mysql_query("SELECT `artist_name` FROM `artists` WHERE `artist_name` = '" . mysql_real_escape_string($word) . "' LIMIT 0, 1;");
if (mysql_num_rows($res) > 0){$result[] = '<a href="'.$site_url.'artist/'.clean_slug_function($word).'/" title="'.$word.'">'.$word.'</a>';}
else{$result[] = $word;}}
$result = implode($result, " - ");
return $result;}
// я сделал это так:
function artist_name($title){ global $site_url;
$words = explode("-", $title); $result = array();
foreach ($words as $word){
$word = trim($word);
$sql = dbquery("SELECT `artist_slug` FROM `artists` WHERE `artist_name` = '".mysql_real_escape_string($word)."' OR `alternative_name` = '".mysql_real_escape_string($word)."' LIMIT 0, 1;");
while($row = dbarray($sql)){$artist_slug = $row['artist_slug'];}
if (mysql_num_rows($sql) > 0){$result[] = '<a href="'.$site_url.'artist/'.clean_slug_function($artist_slug).'/" title="'.$word.'">'.$word.'</a>';}
else{$result[] = $word;}}
$result = implode($result, " - ");
return $result;}
Пример:
для
$title = 'Tupac - Dear Mama';
echo artist_name($title);
результат будет
<a href="http://example.com/artist/2pac/" title="Tupac">Tupac</a> - Dear Mama
* уведомление 2pac
URL Slug против Tupac
(не 2Pac
) имя