Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как получить размер div средствами PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Есть необходимость получать размер div средствами PHP
Romron
Отправлено: 16 Ноября, 2016 - 16:48:38
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




есть исходник html страницы мне нужно получить ширину всех элементов div на этой странице делаю так:

$document = phpQuery::newDocument($page);
$arr_div = $document->find("div");

foreach ($arr_div as $value) {

$pq = pq($value);

$id = $pq -> attr('id');
$css = pq($id) -> css('width');

id элементов -- без проблем, а вот с вместо ширины в $css возвращается ЭТО:

phpQueryObject Object ( [documentID] => 51138ee3e3def4c1fcc5c6411ac8e680 [document] => DOMDocument Object ( ) [charset] => windows-1251 [documentWrapper] => DOMDocumentWrapper Object ( [document] => DOMDocument Object ( ) [id] => 51138ee3e3def4c1fcc5c6411ac8e680 [contentType] => text/html [xpath] => DOMXPath Object ( ) [uuid] => 0 [data] => Array ( ) [dataNodes] => Array ( ) [events] => Array ( ) [eventsNodes] => Array ( ) [eventsGlobal] => Array ( ) [frames] => Array ( ) [root] => DOMDocument Object ( \ц=Цp ( ) [events] => Array ( ) [eventsNodes] => Array ( ) [eventsGlobal] => Array ( ) [frames] => Array ( ) [root] => DOMDocument Object ( ) [isDocumentFragment] => [isXML] => [isXHTML] => [isHTML] => 1 [charset] => windows-1251 ) [xpath] => DOMXPath Object ( ) [elements] => Array ( [0] => DOMDocument Object ( ) ) [elementsBackup:protected] => Arra\ц=ЦpArray ( ) [dataNodes] => Array ( ) [events] => Array ( ) [eventsNodes] => Array ( ) [eventsGlobal] => Array ( ) [frames] => Array ( ) [root] => DOMDocument Object ( ) [isDocumentFragment] => [isXML] => [isXHTML] => [isHTML] => 1 [charset] => windows-1251 ) [xpath] => DOMXPath Object ( ) [elements] => Array ( [0] => DOMDocument Object ( ) ) [elementsBackup:protected] => Array ( ) [previous:protected] =>

подскажите что не так, пожалуйста
 
 Top
3d_killer
Отправлено: 16 Ноября, 2016 - 21:37:27
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




только JS to PHP
 
My status
 Top
Krava
Отправлено: 17 Ноября, 2016 - 09:17:01
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Нояб. 2013  


Помог: 1 раз(а)




Если в div есть style="width:199px" тогда можно получить любой библиотекой для парсинга например SimpleHtmlDom или даже DOMXPath. Тебе главное получит атрибут style
 
 Top
Romron
Отправлено: 17 Ноября, 2016 - 09:31:37
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




3d_killer пишет:
только JS to PHP



а можно немного подробнее
 
 Top
3d_killer
Отправлено: 17 Ноября, 2016 - 10:41:42
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




получить JS размеры элементов и отправить JSON в php
 
My status
 Top
Romron
Отправлено: 17 Ноября, 2016 - 12:17:58
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




3d_killer пишет:
получить JS размеры элементов и отправить JSON в php



это можно сделать phpQuery?
Читал в интернете что метод .css() аналогичен методу .attr() только работает с css стилями, скажите почему он не работает, точнее работает не так - вместо ширины возвращает объект??
 
 Top
3d_killer
Отправлено: 17 Ноября, 2016 - 17:12:11
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




на каждом элементе написано style="width:xxpx" ??
 
My status
 Top
Romron
Отправлено: 18 Ноября, 2016 - 08:55:40
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2016  


Помог: 0 раз(а)




3d_killer пишет:
на каждом элементе написано style="width:xxpx" ??


нет
(Добавление)
Romron пишет:
3d_killer пишет:
на каждом элементе написано style="width:xxpx" ??


нет



id то же есть не у каждого элемента и при этом метод attr() возвращает атрибут если он есть и не возвращает ничего если его нет. А метод css() всегда возвращает тот бред о котором я писал в первом посте. ПОЧЕМУ?? и как получать нужное значение методом css()????????

значение "width:xxpx" есть у каждого элемента!! Для некоторых оно задаётся явно - style="width:xxpx", а некоторые его наследуют у родителя. КАК его получить?....

Речь идёт о phpQuery
 
 Top
3d_killer
Отправлено: 18 Ноября, 2016 - 09:43:18
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




потому что, не нужно сравнивать парсер php c JS
JS выполняется на клиентской машине, сей парсер если и может получить ширину блока, то если она явно указана, остальное читать в официальной документации https://github[dot]com/wirexmedia/php[dot]query
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB