Как игнорировать пустой блок?

Рейтинг: 0Ответов: 2Опубликовано: 10.01.2023
<?php
  $html = '<p class="font_8" style="text-align:center; font-size:16px;"><span class="wixGuard">​</span><br />
&nbsp;</p>';

  $caption_dom = new DOMDocument;
  error_reporting(E_ALL ^ E_WARNING); 
  $caption_dom->loadHTML($html);
  error_reporting(E_ALL);
  
  $tags_p = $caption_dom->getElementsByTagName('p'); 
  $data = $tags_p[0]->textContent;

  if(htmlentities($data) == null){
    exit; //надо попасть сюда!
  }
  //если не попали, проверяем
  $json = json_encode($data); 
  echo $json."<br \>";
?>

Получаю \u00e2\u0080\u008b\n\u00a0 Почему? По сути перевод строки и пробел должен быть... Перевод строки там видно \n, а откуда всё остальное?

Цель: перевод строки и пробелы должны тримиться и хотел игнорить этот блок, как пустой, но пустой не выходит)

Пример из песочницы (с оригинальными данными): https://www.tehplayground.com/htWopS4E8F33ocCV

Ответы

▲ 1Принят
 $html = str_replace("​","",$html);

Скопируйте и вставьте ,и он уберет этот символ :)

https://www.tehplayground.com/wf5xMczrZyzYxUmB (P.S. 43 строка)

▲ 1

Ваш код правильно работает

<?php
  $html = '<p class="font_8" style="text-align:center; font-size:16px;"><span class="wixGuard"></span><br/>&nbsp;</p>';

  $caption_dom = new DOMDocument;
  error_reporting(E_ALL ^ E_WARNING); 
  $caption_dom->loadHTML($html);
  error_reporting(E_ALL);
  
  $tags_p = $caption_dom->getElementsByTagName('p'); 
  $data = $tags_p[0]->textContent;

  if(htmlentities($data) == null){
    exit; //надо попасть сюда!
  }
  //если не попали, проверяем
  $json = json_encode($data); 
  echo $json."<br \>";
  echo "some text: ".$data;
?>

введите сюда описание изображения

vs code подчеркнула мне эти уголочки ,я их стер и написал заново и всё заработало

введите сюда описание изображения

строка пустая (только пробел)