Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21

Присвоение переменной значения из HTML кода

27.04.2017, 21:35. Показов 6472. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужно присвоить переменной значение из исходного кода сайта. Имеем следующий код. Все цифры внутри тегов динамически изменяются.
Нужно присвоить переменной значение, которое в данном примере = 208%.
Можете помочь?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<td>BELA</td>
<td>2428.59</td>
 
<td>
<span class="label" style="color: rgba(55, 120, 180, 0.8)">77.2 Gh/s</span>
</td>
 
<td>
<span class="label" style="background-color: rgba(55, 120, 180, 0.6)">204.4 Mh/s</span>
</td>
<td>13h 31m</td>
<td>208%</td>
<td> <span style="color:green"> <b>101%</b>
</span>
</td>
<td> 0.0380
</td>
<td>
<span class="small glyphicon glyphicon-ok" style="color: darkgreen" data-content="Coin enabled" data-trigger="hover" data-container="body" data-toggle="popover" data-placement="top" data-original-title="" title="">
</span>
</td>
<td>
<span class="small glyphicon glyphicon-refresh" data-content="Autoswitch enabled" data-trigger="hover" data-container="body" data-toggle="popover" data-placement="top" data-original-title="" title="">
</span>
</td>
<td>
<span class="small glyphicon glyphicon-signal" style="color: darkgreen" data-content="Wallet connectivity Ok, 8 connections" data-trigger="hover" data-container="body" data-toggle="popover" data-placement="top" data-original-title="" title="">
</span>
</td>
</tr>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2017, 21:35
Ответы с готовыми решениями:

Присвоение переменной значения массива
В PHP новичек, искал везде, гугл не помог: for($i=0;$i&lt;100;$i++) { if ($i%2==0) $t = $matches; //$matches массив else...

Правильное присвоение переменной значения функции
Вот код- &lt;div class=&quot;popup&quot;&gt; &lt;div class=&quot;form-group float-left&quot;&gt; ...

Присвоение HTML значения в переменную
Ребят, как присвоить значение из выпадающего списка в переменную? Идея такая, в зависимости от выбранного значения в списке, должно...

14
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
28.04.2017, 00:12
PHP
1
2
3
$content = file_get_contents('filename');
preg_match_all("~<td>(.+)</td>~", $content, $m);
echo $m[0][3]; //208%
1
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
28.04.2017, 07:23  [ТС]
Если мои познания после просмотра 4 видеоуроков верны, то данный код делает следующее:
1-й строкой присваивается переменной $content содержимое файла, скажем "1.php"
2-й строкой регулярными выражениями отсекается вся ненужная информация в коде и назначается переменная $m - искомое значение.
3-й строкой выводится на экран переменная $m.

Но как поместить страницу сайта в файл "1.php"?
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
28.04.2017, 09:29
Vorona34,
Цитата Сообщение от Vorona34 Посмотреть сообщение
Но как поместить страницу сайта в файл "1.php"?
лишнее телодвижение.
Цитата Сообщение от Пифагор Посмотреть сообщение
$content = file_get_contents('адрес страницы');
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
28.04.2017, 14:20  [ТС]
Метод "$content = file_get_contents('адрес страницы');" приводит к ошибкам. Я вчера почитал про эту allow_url_fopen=0. Вроде бы, можно попросить хостера (Jino) изменить конфигурацию. Попросить изменить или есть другой способ?

Warning: file_get_contents(): https:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/users/a/al1982-0/domains/ds2/cripto.php on line 17

Warning: file_get_contents(https://hash-to-coins.com/): failed to open stream: no suitable wrapper could be found in /home/users/a/al1982-0/domains/ds2/cripto.php on line 17

Добавлено через 1 час 51 минуту
Обратился я к хостеру. Изменили настройки и все заработало. Число выводится не то, которое нужно. Попробую сам разобраться с регулярными выражениями.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
28.04.2017, 14:51
Vorona34,
Цитата Сообщение от Vorona34 Посмотреть сообщение
или есть другой способ?
, да есть
PHP/HTML
1
ini_set('allow_url_fopen', '1');
Добавлено через 1 минуту
почитать можно тут
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
28.04.2017, 23:05  [ТС]
Сначала настроил вывод константы этим способом, но выяснилось, что код настолько динамичен, что в одной и той же ячейке таблицы на сайте могут отображаться разные данные. Сейчас это будет 208%, а через секунду там будет отображаться время или что-то другое.
PHP
1
echo $m[0][3]; //208%
Так как куски кода регулярно повторяются на сайте, я решил привязаться регулярными выражениями к статичным данным, в данном случае к слову "Belacoin"

Вот кусок кода на сайте
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
                                <h4 class="modal-title" id="coin-info-BELA">Coin info: Belacoin [<b>BELA</b>]</h4>
                            </div>
                            <div class="modal-body">
                                <img alt="?" src="site_assets/bootstrap/images/coin_logos/BELA-64x64.png" />
                                <li>Algotithm: scrypt</li>
                                <li>Type: PoW</li>
                                <li>Wallet version: 1000200</li>
                                <li>Network difficulty: 2306.64</li>
                                <li>Network hashrate: 84.6 Gh/s</li>
                                <li>Current network height: 676972 blocks</li>
                                <li>Wallet connections: 8</li>
                                <li>Block time: 120 sec</li>
                                <li>Block maturity: 120</li>
В данном случае мне нужно поместить в переменную сумму "84.6" перед Gh/s

Использую следующий PHP код:
PHP
1
2
3
4
5
6
7
<?php
$content = file_get_contents('https://hash-to-coins.com/');
$Bela = "Bela=";
preg_match_all("~[Belacoin][.]*([0-9]*[\.][0-9]*)[\sGh]~", $content, $a);
echo $Bela;
echo $a;
?>
Результат должен быть таким: "Bela=84.6", а имею "Bela=Array".

Логика регулярного выражения такова:
[Belacoin]-ищем начальное статичное слово.
[.]* -после слова идут любые символы в любых количествах.
([0-9]*[\.][0-9]*)-интересующее меня значение. Любая цифра от 0 до 9 в любых количествах, затем точка и опять любая цифра в любых количествах.
[\sGh]-пробел и привязка к конечному статичному слову "Gh"
Вроде бы, все логично, но не работает )))
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
29.04.2017, 00:06
Цитата Сообщение от Vorona34 Посмотреть сообщение
Вроде бы, все логично
нет не логично. До регулярок я еще не добрался(да, да - новичек я), но следуя вашему алгоритму - переменной $a вы пытаетесь передать три значения от
Цитата Сообщение от Vorona34 Посмотреть сообщение
<li>Wallet version: 1000200</li>
<li>Network difficulty: 2306.64</li>
<li>Network hashrate: 84.6 Gh/s</li>
поэтому у вас и сообщение о массиве. Выводите как массив.

Добавлено через 12 минут
или же, если значение что вам нужно, будет браться только отсюда
Цитата Сообщение от Vorona34 Посмотреть сообщение
<li>Network hashrate: 84.6 Gh/s</li>
тогда сделайте так
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<h4 class="modal-title" id="coin-info-BELA">Coin info: Belacoin [<b>BELA</b>]</h4>
                            </div>
                            <div class="modal-body">
                                <img alt="?" src="site_assets/bootstrap/images/coin_logos/BELA-64x64.png" />
                                <li>Algotithm: scrypt</li>
                                <li>Type: PoW</li>
                                <li>Wallet version: 1000200</li>
                                <li>Network difficulty: 2306.64</li>
                                <li class="get_value">Network hashrate: 84.6 Gh/s</li>
                                <li>Current network height: 676972 blocks</li>
                                <li>Wallet connections: 8</li>
                                <li>Block time: 120 sec</li>
                                <li>Block maturity: 120</li>
PHP/HTML
1
2
3
4
5
6
7
<?php
$content = file_get_contents('https://hash-to-coins.com/');
$Bela = "Bela=";
preg_match_all("~[get_value][.]*([0-9]*[\.][0-9]*)[\sGh]~", $content, $a);
echo $Bela;
echo $a;
?>
в этом случае между указанными маркерами будет парсится только тот набор цифр что вам нужно. Но могу ошибаться - пробуйте. И пожалуйста, обязательно напишите о результатах.
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
29.04.2017, 08:23  [ТС]
Спасибо за помощь. Использовать второй способ не могу, так как код не мой.
Попробую вывести массивом, я до них еще не дошел )) Вы можете описать почему в моем текущем варианте скрипта переменной присваивается не одно, а три значения?

Добавлено через 22 минуты
Посмотрел полученный массив:
PHP
1
Array ( [0] => Array ( [0] => l. [1] => n.h [2] => n.h ) [1] => Array ( [0] => . [1] => . [2] => . ) )
Там, оказалось, совсем не то, что хотелось бы ))) Получается, что у меня в массиве другие массивы?
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
29.04.2017, 09:58
Vorona34, хм странно. Значит способ с регулярками не работает. Или написаны неправильно. Ну то есть - вот это участок
Цитата Сообщение от Vorona34 Посмотреть сообщение
"~[Belacoin][.]*([0-9]*[\.][0-9]*)[\sGh]~"
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
29.04.2017, 10:00  [ТС]
думаю да. Это, наверное, уже выходит за рамки темы, так что создам новую.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
29.04.2017, 10:19
Vorona34, попробуйте так
PHP/HTML
1
"^<li>([0-9]*[\.][0-9]*)<li>$"
Добавлено через 2 минуты
если верить правилам описания регулярок, то сие значит следующее - найти набор цифр в строке от <li> до <li>,
а preg_match_all проверит все вхождения
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
29.04.2017, 10:23  [ТС]
Проблема в том, что этих значений на странице будет очень много, поэтому я хочу привязаться к слову "Belacoin"

Добавлено через 2 минуты
"^<li>([0-9]*[\.][0-9]*)<li>$" - не работает в таком виде и после добавления ~ тоже не работает.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
29.04.2017, 10:25
Vorona34, вот здесь нашел интересный пример под заголовком "Выборка цен" - посмотрите, вдруг подойдет
0
0 / 0 / 0
Регистрация: 27.04.2017
Сообщений: 21
29.04.2017, 11:34  [ТС]
Исправил
PHP
1
([0-9]*[\.][0-9]*)
на
PHP
1
\d*\.\d*
, но результат тот же.
Судя по тому, что за бардак у меня в массиве, проблема в том, что я не могу правильно описать весь нужный кусок код, а не только цену.

Добавлено через 54 минуты
Не получается написать регулярное выражение Тут решение моей задачи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2017, 11:34
Помогаю со студенческими работами здесь

Присвоение параметру action формы значения переменной из PHP
Всем доброго времени суток, подскажите такой момент, знаний не хватает: есть некая html страница в ней есть код php и форма, причем все...

Вывод значения переменной в форме HTML
Изучаю php по видеоурокам и там было задание сделать калькулятор. &lt;?php include 'functions.php'; include 'form.php'; if...

Присвоение к переменной цифры для получения новой переменной
даны переменные: define (&quot;A1&quot;,&quot;aaaa&quot;); define (&quot;B1&quot;,&quot;ssss&quot;); define (&quot;A2&quot;,&quot;dddd&quot;); define (&quot;B2&quot;,&quot;ffff&quot;); мой код с ошибками ...

Присвоение переменной строки
как присвоить переменной вот такую строку _ShowPropertyField('PROP.']', $prop_fields, $prop_fields, (($historyId &lt;= 0)...

Объявление переменной и присвоение ей значения одной строкой кода
Здравствуйте! Подскажите пожалуйста как объявить переменную и сразу же присвоить ей значение в одной строке. У меня не получается: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru