2014-11-17 2 views
0

У меня есть строка, которую я пытаюсь разбить, а затем добавить тег span на каждые 2 слова.PHP ARRAY_PUSH strips html tag

Когда я разбиваю строку и пытаюсь использовать array_push для создания нового массива, мои теги html исчезают.

Вот моя функция:

public function splitString(){ 

    $string = Sample sentence; 
    $newHeader = array(); 

    $parts = preg_split('/\s+/', $string); 
    $num = 1; 

    foreach($parts as $str){ 

     if($num % 2 == 0){ 
      array_push($newHeader, "<span>".$str."</span>"); 
     }else{ 
      array_push($newHeader, $str); 
     } 

     $num++; 
    } 

    return $newHeader; 
} 

Когда я называю эту функцию в результате я получаю

Array ([0] => Sample [1] => sentence) 

Ищу:

Array ([0] => Sample [1] => <span>sentence</span>) 

Что я делаю неправильно ? Пожалуйста, помогите

Спасибо заранее

+2

Если '$ string = Пример предложения;' ваш фактический код, используйте кавычки '$ string =" Пример предложения ";' - Это строка, а не две константы. –

ответ

4

Во-первых, если вы не исправили, так же, как сказал @fred в комментариях, вы должны процитировать ваши строки в этой функции:

$string = 'Sample sentence'; 

Во-вторых, оно работает. array_push()не разделите свои метки. Вам просто представлен print_r() в браузере, но его там вместе со словом.

Array ([0] => Sample [1] => sentence) 

Если посмотреть на него в источнике зрения. Это то, на что это похоже:

print_r(splitString()); 

Array 
(
    [0] => Sample 
    [1] => <span>sentence</span> 
) 

Вы просто не видите его визуально в браузере, но теги есть.

Если вы пытаетесь добавить это вверх:

array_push($newHeader, "<span style='color: red;'>".$str."</span>"); 

Вы увидите стиль. Попробуйте это :)

+1

4x upvotes (по состоянию на этот комментарий), включая мои собственные; не может пойти не так;) –

+0

@ Fred-ii- спасибо мужчине, на самом деле единственная проблема здесь в том, что некотируемая строка :), что следует за дальнейшим объяснением. – Ghost

+0

Добро пожаловать. Теперь, что я нахожу странным, это то, что OP утверждает: * «когда я вызываю эту функцию, результат получается: ' Array ([0] => Образец [1] => предложение) '' * - OP может не отображаться нас все, и/или отчет об ошибках не установлен/включен. * Baffled * –