2013-02-25 1 views
0

Текущий сценарий:способ PHP взрываются аббревиатуры для вывода полного текста с hyperkinks

Таблица 'Тема' может содержать строку 'типа', который содержит аббревиатуры для:

  • Web - W,
  • Email - E,
  • Телефон - P

так

if (isset($topic['type'])) { 
echo $topic['type']; 

может обычно выходной

W P 

Мой вопрос заключается в том, как к Выходу полный текст, а не аббревиатуры и гиперссылки из полного текста в URL, например:

<a href='somesite.com/web'>Web</a> <a href='somesite.com/phone'>Phone</a> 

То, что я до сих пор:

if (isset($topic['type'])) { 
    $typeArr = explode(' ',$topic['type']); 
    $fulldesc = array(
     'W' => $lang['textentryW'], // textentryW equals Web 
     'E' => $lang['textentryE'], // Email 
     'P' => $lang['textentryP'], // Phone 
    ); 
    foreach ($fulldesc as $abc => $name) { 
     if(in_array($abc, $typeArr)) 
      // mental blank !!! 
    } 

ответ

0

В простейшем случае вы можете просто использовать:

echo $fulldesc[ $topic["type"] ]; 

Сделать $fulldesc содержать окончательный HTML/ссылка уже для дополнительной лени.

foreach, вероятно, излишним, вам просто нужно isset или ваш in_array тест, если неожиданные аббревиатура букв migh происходит:

if (isset($topic['type'])) { 
    $typeArr = explode(' ',$topic['type']); 
    $fulldesc = array(
     'W' => $lang['textentryW'], 
     'E' => $lang['textentryE'], 
     'P' => "<a href='somesite.com/phone'>$lang[textentryP]</a>", 
    ); 
    if (isset($fulldesc[ $topic["type"] ])) { 
     echo $fulldesc[ $topic["type"] ]; 
    } 
    else { 
     echo "<a href='somesite.com/UNKNOWN'>$topic[type]</a>"; 
    } 

Кроме того, вне темы Примечание: Вы должны использовать обычный английский для $lang заполнителей, когда-нибудь будет легче перейти к gettext. Аббревиатуры хороши с точки зрения программирования, но обычно оказываются сложнее поддерживать.

+0

Saw Вы отправили это примерно в то же время, как у меня. Я сохранил цикл foreach в моей, так как использование взрывов по типу темы указывает на то, что там, вероятно, есть несколько типов, и они хотят, чтобы все типы были перечислены. –

+0

Нет, тогда я прочитал это неправильно. Если это список, то, конечно, нужен foreach. – mario

2

Что-то вроде:

if (isset($topic['type'])) { 
$typeArr = explode(' ',$topic['type']); 
$fulldesc = array(
    'W' => $lang['textentryW'], // textentryW equals Web 
    'E' => $lang['textentryE'], // Email 
    'P' => $lang['textentryP'], // Phone 
); 
foreach ($typeArr as $type) { 
    if(isset($fulldesc[$type])) { 
     echo "<a href=\"somesite.com/" . strtolower($fulldesc[$type]) . "\">{$fulldesc[$type]}</a>"; 
    } 
} 
+0

Спасибо, вы правы, я пытаюсь скомпилировать список, в котором любой из элементов массива может существовать или не существовать. Я также пытаюсь захватить их переменной, что-то вроде: – Competitions

+0

Спасибо, вы правы, я пытаюсь скомпилировать список, в котором любой из элементов массива может или не может существовать. Я также пытаюсь захватить их переменной, что-то вроде: $ types =. $ Fulldesc [$ тип]; однако я получаю сообщение об ошибке «Синтаксическая: ошибка синтаксиса, неожиданный T_ENCAPSED_AND_WHITESPACE, ожидая T_STRING или T_VARIABLE или T_NUM_STRING» ошибку на этой линии - любые подсказки, пожалуйста: «W» => «$lang['textentryw']», – Competitions

+0

Вам нужно бежать ваша ссылка на массив, либо «W» => «" . $lang['text‌​entryw'] . "», либо «W» => «{$lang['text‌​entryw']}», –

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

  • Нет связанных вопросов^_^