Хобрук: Ваш путь к мастерству в программировании

PHP-эквивалент этого Javascript

У меня есть HTML-шаблон с DIV, содержащими разметку schema.org. Содержимое DIV заполняется через PHP, но некоторые DIV остаются пустыми, когда нам не хватает данных для их размещения. В настоящее время мы можем скрыть DIV, проверив длину поля с помощью приведенного ниже javascript, НО, поскольку это клиентская сторона, инструмент тестирования богатых данных Google по-прежнему видит разметку schema.org в коде с отсутствующим/пустым содержимым и жалуется на потерянная информация.

Итак, мне нужно, чтобы DIV был скрыт, если он пуст, на стороне сервера перед обработкой. Я не могу понять, что эквивалентно PHP для этой проверки Javascript.

МЕТОД JAVASCRIPT ИСПОЛЬЗУЕТСЯ

<script>
var inside = document.getElementById("persona");
if(inside.innerHTML.length < 1)    {
        document.getElementById("staffm").style.display = "none";
    }    else    {
        document.getElementById("staffm").style.display = "block";
    }
</script>

ОТВРАТИТЕЛЬНЫЙ PHP-КОД, КОТОРЫЙ Я ПЫТАЛСЯ ИСПОЛЬЗОВАТЬ (ВЕРСИЯ 3 МИЛЛИАРДА ЧТО-ТО)

<?php
  $div = getElementById('staffm');
  if (ob_get_length($div) < 1) {
    $div->setAttribute("style", "display:none");
  } else {
    die('');
  }
?>

Я не думаю, что это далеко не правильно, но я, честно говоря, не могу найти «простой» ресурс/сообщение о такой задаче - другие вопросы/ответы, кажется, становятся глубже, чем мне нужно или понимаю, и я теряюсь . Таким образом, любая помощь будет оценена.


  • Что, черт возьми это? У вас нет доступа к DOM в PHP, а языки совершенно разные, используются в разных местах и ​​т. д., поэтому PHP нельзя заменить javascript. 29.04.2013
  • Что ты вообще хочешь этим сделать? 29.04.2013
  • @adeno Да, вы можете получить доступ к DOM в PHP, но, по общему признанию, используемый метод немного выше моего понимания PHP, вот один пример [ссылка]stackoverflow.com/questions/8144061/ 29.04.2013
  • Разбор HTML путем создания DOMDocument — это не то же самое, что доступ к фактическому DOM в клиентском браузере, как это делает javascript. Я думаю, что вы на самом деле не понимаете этого, и, вероятно, вам следует воспользоваться советом в ответе ниже, чтобы прочитать об основах. 29.04.2013
  • @NullPointer - я не уверен, как объяснить это яснее - если DIV с разметкой schema.org являются нулевыми/пустыми, мне нужно, чтобы атрибут стиля CSS для DIV был установлен на display:none; чтобы пустая разметка не читалась/анализировалась богатым процессором данных (в частности, Google) 29.04.2013
  • @adeneo Я не вижу ответа ниже - в любом случае, я понимаю, что это неправильно, и обычно я НЕ пользователь PHP, поэтому извините, если кажется, что я упускаю очевидное. Если вы хотите объяснить, как мне это сделать, или дать ответ, о котором вы говорили, я рассмотрю это. 29.04.2013
  • Когда разметка создается с помощью PHP, именно тогда вы должны проверять наличие пустых значений и просто не выводить связанную разметку вообще. 29.04.2013
  • Откуда в первую очередь берется наценка? База данных? PHP-строки? 29.04.2013

Ответы:


1

Использование «getElementById» в PHP недопустимо, потому что PHP выполняется на сервере, а не в клиенте, поэтому вы пытаетесь получить доступ к html-объекту, который находится в клиентском веб-браузере, с серверным языком (PHP). Я рекомендую вам изучить манипулирование DOM и Ajax, чтобы «связать» Javascript и PHP с объектом XMLHttpRequest.

29.04.2013
  • Педантичности ради, getElementById не является нативной глобальной функцией PHP. Существует бесчисленное множество пользовательских реализаций для обхода/модификации DOM (на ум приходит PHPQuery), в которых вполне могут существовать такие функции. ОП, возможно, лучше всего расследовать что-то подобное. 29.04.2013
  • После первоначальных комментариев выше и некоторых дополнительных исследований я просто полностью отказался от этого подхода и нашел другой путь для достижения необходимого результата. - Так что проблема решена в любом случае. Спасибо всем за конструктивный или иной вклад. 29.04.2013
  • Новые материалы

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..