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

Не могу осилить if (пробую сделать условие в парсере)

04.12.2014, 08:36. Показов 762. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пытаюсь сделать парсер для обновления валют. Сам парсинг в массив получается, а вот задать условие для выбора нужной валюты не получается.

Что не так пишу? не проходит строка где много ++++++++++++++

я уже перепробовал всё что знал. Помогите пожалуйста.


PHP
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
$date = date('d.m.Y');
$url="http://www.kasikornbank.com/EN/RatesAndFees/ForeignExchange/Pages/ForeignExchange.aspx"; // URL страницы с курсами валют на сегодн¤
$html = file_get_contents($url); // „итаем содержимое HTML страницы
$charset = 'UTF-8'; // кодировка получаемой страницы
 
// на данном этапе, находим на в коде блок с классом header2, и все что до него удал¤ем, т.к. оно нам ненужно, там содержитс¤ ненужна¤ нам информаци¤
$pos=mb_strpos($html,'<table class="ContentTB" cellspacing="0" cellpadding="0">', 0, $charset); // позици¤
$html=mb_substr($html,$pos,mb_strlen($html, $charset), $charset); // обрезаем до указанной позиции, уда뤤 все лишнее
 
$dom = new domDocument; // создаем объект дерева DOM
$dom->loadHTML($html); // загружаем в него спарсенную страницу
 
$dom->preserveWhiteSpace = false;
//echo $html;
$tables = $dom->getElementsByTagName('table'); // получаем из дерева DOM первую таблицу, ею ¤вл¤етс¤ как раз таблица содержаща¤ курсы валют
$rows = $tables->item(0)->getElementsByTagName('tr'); // получаем из таблицы все строки
 
$i=0;
$curs = array(); // массив который будет хранить данные
foreach ($rows as $row) // беребор полученных строк
    {
    if($i==0) {$i++; continue;} // первую строку пропускаем, т.к. она содержит заголовки столбцов а не данные
        $cols = $row->getElementsByTagName('td'); // разбираем все строки по столбцам
 
 
    // записываем в полученные данные в массив, дл¤ удобного представлени¤ и работы дальше
        $curs[$i][0]=$cols->item(0)->nodeValue; // ?ифр. код
        $curs[$i][1]=$cols->item(1)->nodeValue; // Ѕукв. код 
        $curs[$i][2]=$cols->item(2)->nodeValue; // ?диниц
 
    $i++;
    }
// обработка массива
 
$codEUR1 = "EUR";
$tt = "0";
for ($x = 0; $x <= 40; $x++) {
    
    
    $codEUR = $curs[$x][0];
    
    
    if ($codEUR == $codEUR1)  $tt = "++++++++++++++++++++++++++++++++++++++++++++";
    
    echo "<br>".$codEUR." = ".$codEUR1." - ".$tt;
    echo "<br>";
    
}
?>
Добавлено через 1 час 1 минуту
есть у меня подозрение, что данные разнотипные, по этому не получается их сравнить. но как это побороть не знаю.

а может я и не прав.

Добавлено через 11 часов 30 минут
Товарищи программисты. Дайте хоть какие то идеи. Я уже проверил и кодировку этих переменных, и форму записи пробовал менять. всё тщетно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2014, 08:36
Ответы с готовыми решениями:

Не могу осилить STP16CP05
всем привет, прошу помощи разобраться с STP16CP05... Предыстория такова: банальная подсветка светодиодов, контроллер stm32F103CBT6, к...

Не могу осилить условия!
Добрый вечер! Подскажите, почему не работает должным образом условие: Ставил всяко, итог один проверяет только одно условие.(Если же...

не могу осилить два примера...
Помогите дорешать контрольную, осталось два задания: 1) Имеется массив А из N произвольных чисел A(N), среди которых есть...

2
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
04.12.2014, 09:19
Цитата Сообщение от cherkas_a Посмотреть сообщение
Что не так пишу? не проходит строка где много ++++++++++++++
ну видимо не выполняется предшествующее ей условие
PHP
1
if ($codEUR == $codEUR1)
0
0 / 0 / 1
Регистрация: 02.12.2013
Сообщений: 21
04.12.2014, 11:04  [ТС]
помогли в другом месте, при парсинге были лишние пробелы, решилось с помощью

PHP
1
$codEUR = trim($curs[$x][0]);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2014, 11:04
Помогаю со студенческими работами здесь

Что-то я хук не могу осилить...
Раньше ни когда не пробовал работать с хуками (и с DLL тоже), но тут возникла необходимость поставить хук на WM_MOUSEMOVE и...

Не могу осилить std::cout
Подскажите плз, почему у меня может не работать cout и std::cout. Пробую в Dev-C++ 5.11 #include &lt;iostream&gt; #include...

Не могу осилить эти задачи
Здравствуйте уважаемые ребята. Срочно требуется помощь в решении ниже указанных задач. Почему я сам не решаю их? - Есть причина ребят,...

Логическая задача.Не могу осилить
Дана задача: По подозрению в совершенном преступлении задержали Брауна,Джона и Смита.Один из них был уважаемым в городе стариком,другой...

Не могу осилить метод Ньютона
Доброго времени суток, помогите пожалуйста, справиться с уравнением, которое нужно реализовать методом Ньютона. Есть уравнение, скрин...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru