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
Форумы портала PHP.SU :: Версия для печати :: Получение данных.
Форумы портала PHP.SU » » Вопросы новичков » Получение данных.

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

1. Evgen8 - 14 Июня, 2012 - 09:06:19 - перейти к сообщению
Нужно найти на сайте курсы валют для конвертера....
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. (string) $cont;
  7. preg_match('/<tr><td>USD<\/td><td>7.992<\/td><\/tr>/', $cont, $usd);
  8. preg_match('/<tr><td>UAH<\/td><td>0.125<\/td><\/tr>/', $cont, $uah);
  9. echo $usd[0];
  10. echo $uah[0];
  11. ?>
  12.  

Выводит пустоту.... Не понял
2. Alho - 14 Июня, 2012 - 22:47:05 - перейти к сообщению
А кто будет переносы строк учитывать?

Совет. Всегда смотрите исходный html-код
3. Evgen8 - 14 Июня, 2012 - 22:54:38 - перейти к сообщению
Alho пишет:
А кто будет переносы строк учитывать?

Совет. Всегда смотрите исходный html-код


В данных строчках их нет...
4. Alho - 14 Июня, 2012 - 23:04:22 - перейти к сообщению
И таки я настаиваю =)
CODE (html):
скопировать код в буфер обмена
  1. <table>
  2. <tr>
  3. <td>USD</td><td>7.992</td>
  4. </tr>
  5. <tr>
  6. <td>UAH</td><td>0.125</td>
  7. </tr>
  8. </table>
5. Evgen8 - 14 Июня, 2012 - 23:06:55 - перейти к сообщению
Alho пишет:
И таки я настаиваю =)
CODE (html):
скопировать код в буфер обмена
  1. <table>
  2. <tr>
  3. <td>USD</td><td>7.992</td>
  4. </tr>
  5. <tr>
  6. <td>UAH</td><td>0.125</td>
  7. </tr>
  8. </table>


Ну я же ищу не весь html...Только одну строчку.
6. jonston - 18 Июня, 2012 - 19:59:07 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. (string) $cont;
  7. preg_match('/<td>USD<\/td><td>7.992<\/td>/', $cont, $usd);
  8. preg_match('/<td>UAH<\/td><td>0.125<\/td>/', $cont, $uah);
  9. echo $usd[0];
  10. echo $uah[0];
  11. ?>
  12.  

попробуй так посмотреть находит или нет если находит то дело в переводе строки
7. Evgen8 - 18 Июня, 2012 - 20:09:37 - перейти к сообщению
jonston пишет:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. (string) $cont;
  7. preg_match('/<td>USD<\/td><td>7.992<\/td>/', $cont, $usd);
  8. preg_match('/<td>UAH<\/td><td>0.125<\/td>/', $cont, $uah);
  9. echo $usd[0];
  10. echo $uah[0];
  11. ?>
  12.  

попробуй так посмотреть находит или нет если находит то дело в переводе строки


У вас работает...А у меня чего не работает?Только из-за того , что я не ячейку а рад брал? -__-
8. jonston - 18 Июня, 2012 - 20:13:34 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. (string) $cont;
  7. preg_match('/<tr>\n*<td>USD<\/td><td>7.992<\/td>\n*<\/tr>/', $cont, $usd);
  8. preg_match('/<tr>\n*<td>UAH<\/td><td>0.125<\/td>\n*<\/tr>/', $cont, $uah);
  9. echo $usd[0];
  10. echo $uah[0];
  11. ?>
  12.  


пробуй так.Дело в том помимо тех символов что ты видишь еще есть невидимые символы такие как перенос строки \n знак табуляции \t и так далее
9. Evgen8 - 19 Июня, 2012 - 00:03:06 - перейти к сообщению
[quote=jonston]
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. (string) $cont;
  7. preg_match('/<tr>\n*<td>USD<\/td><td>7.992<\/td>\n*<\/tr>/', $cont, $usd);
  8. preg_match('/<tr>\n*<td>UAH<\/td><td>0.125<\/td>\n*<\/tr>/', $cont, $uah);
  9. echo $usd[0];
  10. echo $uah[0];
  11. ?>
  12.  


Не работает...

А как сделать , чтобы значение курса могло быть разным?
10. PVG - 19 Июня, 2012 - 10:07:39 - перейти к сообщению
Evgen8 пишет:
А как сделать , чтобы значение курса могло быть разным?

Что значит разным? Чтобы ты его с сайта вводить мог?
11. jonston - 19 Июня, 2012 - 12:10:18 - перейти к сообщению
пробуй так
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match('/<tr>\s*<td>USD<\/td><td>[^<]+<\/td>\s*<\/tr>/isU', $str, $usd);
  3. preg_match('/<tr>\s*<td>UAH<\/td><td>[^<]+<\/td>\s*<\/tr>/isU', $str, $uah);
  4.  
12. Evgen8 - 19 Июня, 2012 - 13:27:32 - перейти к сообщению
jonston пишет:
пробуй так
PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match('/<tr>\s*<td>USD<\/td><td>[^<]+<\/td>\s*<\/tr>/isU', $str, $usd);
  3. preg_match('/<tr>\s*<td>UAH<\/td><td>[^<]+<\/td>\s*<\/tr>/isU', $str, $uah);
  4.  

Пусто..
13. avtor.fox - 19 Июня, 2012 - 14:03:54 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. //Тянет все тдшки.
  2. preg_match_all('#<td>(.*)</td>#Uis', $cont, $all);
  3. //Нужно чистить от тегов.
  4. preg_match('#<td>USD</td><td>(.*)</td>#', $cont, $usd);
  5. preg_match('#<td>UAH</td><td>(.*)</td>#', $cont, $uah);


Я честно говоря мало сталкивался с регулярками Улыбка
14. jonston - 19 Июня, 2012 - 16:56:29 - перейти к сообщению
Шли полный исходный код.
15. Stive_Dias - 19 Июня, 2012 - 17:02:31 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $ch = curl_init('http://mc-diamond.ru');
  4. curl_setopt  ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cont = curl_exec($ch);
  6. preg_match('#<td>USD</td><td>(.*)</td>#U', $cont, $usd);
  7. preg_match('#<td>UAH</td><td>(.*)</td>#U', $cont, $uah);
  8. echo $usd[1];
  9. echo $uah[1];
  10. ?>
  11.  

 

Powered by ExBB FM 1.0 RC1