[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: операция с массивом
vik1249
Что делаю: вывожу на экран все данные из массива делаю тип int но он не распознается

так вот вопрос мне нужно каждую строку массива и с ней проделать арифметические действия к примеру сложить строку массива с цифрой

вот сам скрипт

<?
// Получить html-страницу
$grab=@file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html");
if ($grab) {
// Заменить теги переноса строки на простые переносы строки
$grab=str_replace("<br>","\n",$grab);
// Получить регулярным выражением тексты цитат
preg_match_all("/<span\sclass=\"price\"\s>([0-9]*)<\/span>/",$grab,$matches);
// В массиве содержатся все найденные строки
for ($i=0; $i<count($matches[0]); $i++) {
$c = ($matches[0][$i]);
echo $c;
echo gettype ($c);
echo '<hr>';

}
}

else {
echo "Connection Error";
}
?>




Спустя 20 минут, 8 секунд (3.10.2010 - 11:10) Invis1ble написал(а):
вот это
$c = (int)$c;
удали. А это
$c = ($matches[0][$i]);
замени на
$c = intval($matches[0][$i]);

А еще пользуйся вместо for лучше foreach - быстрее работает

Спустя 12 минут, 11 секунд (3.10.2010 - 11:22) vik1249 написал(а):
все равно выдает нули а при сложении
$a = $c+120;
echo $a;

Спустя 9 минут, 9 секунд (3.10.2010 - 11:32) Invis1ble написал(а):
Чесно говоря, я с грабом пока не работал, но думаю, что у тебя просто массив $matches пустой скорее всего. Попробуй print_r($matches) и посмотри, что там у тебя в нем
И еще print_r($grab) сделай

Спустя 9 минут, 22 секунды (3.10.2010 - 11:41) vik1249 написал(а):
Invis1ble
я изменяюсь но это все не то что вы просите сделать

Спустя 12 минут, 7 секунд (3.10.2010 - 11:53) Invis1ble написал(а):
vik1249
Просто не очень понятно, что ты хочешь получить от своего скрипта. Ты опиши внятно, что хочешь сделать
  foreach ($matches[0] as $match)
echo $match . ' ' . gettype($match) . '<br />';

Спустя 4 минуты, 11 секунд (3.10.2010 - 11:57) vik1249 написал(а):
я хочу получить данные из строки массива в integer после этого я хочу применить к данной строке арифметические действия (+-*/)
к примеру в строке массива запись 1234
я хочу получит 1234+10=1244
а у меня получаеться 123410

Спустя 7 минут, 36 секунд (3.10.2010 - 12:05) Invis1ble написал(а):
foreach ($matches[0] as $match)
{
$a = intval($match); // intval возвращает 0, если не удается преобразовать к целочисленному типу данных
$c = $a + 10;
echo $c . '<br />';
}

intval
Цитата
The integer value of var on success, or 0 on failure. Empty arrays and objects return 0, non-empty arrays and objects return 1.
Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of integer casting apply.

Спустя 1 минута, 18 секунд (3.10.2010 - 12:06) vik1249 написал(а):
вот при этом коде что получаеться
for ($i=0; $i<count($matches[0]); $i++) {


echo $i."-";
$c = ($matches[0][$i]);
echo $c;
$c = intval($matches[0][$i]);
echo " ".$c;
echo gettype ($c);
echo '<hr>';

}


0-6269 0integer
1-16380 0integer
2-13485 0integer
3-15016 0integer
4-23795 0integer
.........
почему не преобразовывается если там явно целая цифра?

Спустя 15 минут, 58 секунд (3.10.2010 - 12:22) Invis1ble написал(а):
что-то странное, попробуй этот код (токо ниче не сочиняй, просто скопируй его)
foreach ($matches[0] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}

и напиши, что выведет

Спустя 6 минут, 15 секунд (3.10.2010 - 12:28) vik1249 написал(а):
6269(string)=>0(integer)
16380(string)=>0(integer)
13485(string)=>0(integer)
15016(string)=>0(integer)
23795(string)=>0(integer)
тоже самое как и было

Спустя 23 минуты, 11 секунд (3.10.2010 - 12:51) Invis1ble написал(а):
Что-то непонятное, никогда с таким не сталкивался. У меня все срабатывает в аналогичном коде:
<?php

$text = "34123|123|523|543645|7335";
echo $text . '<br>';
preg_match_all('/\d+/', $text, $matches);

echo '<pre>'; print_r($matches); echo '</pre>';

foreach ($matches[0] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}

?>
сижу, пытаюсь понять причину..

Спустя 3 минуты, 21 секунда (3.10.2010 - 12:55) Invis1ble написал(а):
Напиши пока, что выдает
echo '<pre>'; print_r($matches); echo '</pre>';

Спустя 8 часов, 40 минут, 57 секунд (3.10.2010 - 21:36) vik1249 написал(а):
6269

Array
(
[0] => Array
(
[0] => 6269
[1] => 16380
[2] => 13485
[3] => 15016
[4] => 23795
[5] => 25465
[6] => 26450
[7] => 22249
[8] => 7412
[9] => 10486
[10] => 13981
[11] => 19366
[12] => 21981
[13] => 17875
[14] => 20585
[15] => 10139
[16] => 2930
[17] => 2930
[18] => 13666
[19] => 12357
[20] => 936
[21] => 1058
[22] => 3835
[23] => 4485
[24] => 4465
[25] => 3515
[26] => 3915
[27] => 15296
[28] => 4975
[29] => 2587
[30] => 2794
[31] => 2794
[32] => 2794
[33] => 3135
[34] => 3394
[35] => 3394
[36] => 3448
[37] => 4036
[38] => 4594
[39] => 4594
[40] => 3946
[41] => 3946
[42] => 3946
[43] => 4641
[44] => 5387
[45] => 5387
[46] => 5387
[47] => 6289
[48] => 6396
[49] => 7276
[50] => 8148
[51] => 8148
[52] => 7636
[53] => 8494
[54] => 10236
[55] => 10799
[56] => 10799
[57] => 10994
[58] => 10994
[59] => 4505
[60] => 4923
[61] => 4923
[62] => 4742
[63] => 4923
[64] => 4923
[65] => 4797
[66] => 5506
[67] => 9346
[68] => 10187
[69] => 10187
[70] => 10186
[71] => 9658
[72] => 10186
[73] => 15785
[74] => 6918
[75] => 6918
[76] => 7593
[77] => 7593
[78] => 7593
[79] => 7593
[80] => 6535
[81] => 7788
[82] => 3318
[83] => 3723
[84] => 3723
[85] => 4635
[86] => 4986
[87] => 4986
[88] => 5546
[89] => 6484
[90] => 6484
[91] => 10785
[92] => 8865
[93] => 8365
[94] => 9596
[95] => 9596
[96] => 9595
[97] => 6286
[98] => 6978
[99] => 6978
[100] => 8586
[101] => 9390
[102] => 9390
[103] => 10396
[104] => 10966
[105] => 10966
[106] => 10965
[107] => 12185
[108] => 13399
[109] => 13399
[110] => 13442
[111] => 13457
[112] => 9542
[113] => 9542
[114] => 9542
[115] => 13175
[116] => 14496
[117] => 14496
[118] => 14495
[119] => 10265
[120] => 11688
[121] => 12146
[122] => 12929
[123] => 12929
[124] => 12928
[125] => 1740
[126] => 5520
[127] => 5894
[128] => 4567
[129] => 3535
[130] => 5761
[131] => 5746
[132] => 15392
[133] => 16942
[134] => 7273
[135] => 10336
[136] => 11198
[137] => 3033
[138] => 3033
[139] => 2956
[140] => 3427
[141] => 3528
[142] => 3427
[143] => 4335
[144] => 4586
[145] => 6216
[146] => 2992
[147] => 13995
[148] => 14985
[149] => 3866
[150] => 4535
[151] => 4535
[152] => 4176
[153] => 4787
[154] => 4787
[155] => 5390
[156] => 5365
[157] => 5106
[158] => 5698
[159] => 5723
[160] => 6380
[161] => 6795
[162] => 6041
[163] => 6722
[164] => 6722
[165] => 7086
[166] => 7686
[167] => 7665
[168] => 5957
[169] => 6442
[170] => 3495
[171] => 3885
[172] => 3885
[173] => 4757
[174] => 12645
[175] => 13332
[176] => 11255
[177] => 12183
[178] => 12183
[179] => 12183
[180] => 12183
[181] => 10466
[182] => 8665
[183] => 9163
[184] => 9666
[185] => 9998
[186] => 9998
[187] => 18785
[188] => 5761
[189] => 5761
[190] => 5761
[191] => 1776
[192] => 1546
[193] => 420
)

Спустя 3 минуты, 35 секунд (3.10.2010 - 21:39) Invis1ble написал(а):
жесть =)
ну я без понятия, так и не въехал, в чем причина... мистика какая-то..

Спустя 4 минуты, 49 секунд (3.10.2010 - 21:44) vik1249 написал(а):
Что-то непонятное, никогда с таким не сталкивался. У меня все срабатывает в аналогичном коде:

<?php

$text = "34123|123|523|543645|7335";
echo $text . '<br>';
preg_match_all('/\d+/', $text, $matches);

echo '<pre>'; print_r($matches); echo '</pre>';

foreach ($matches[0] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}

?>


сижу, пытаюсь понять причину..


так то да я сам пробывал все работает
мое предположение все таки в строке
preg_match_all("/<span\sclass=\"price\"\s>([0-9]*)<\/span>/",$grab,$matches);

регулярные выражения 100% правильно может что где дописать?
я думаю что в массив передается что то не то но что не могу понять
хотя если посмотреть что в нем вроде все ок

Спустя 17 минут, 46 секунд (3.10.2010 - 22:02) vik1249 написал(а):
ага вот и я про тоже, что делать хз, а проверь у себя этот скрипт, что будет?

Спустя 23 минуты, 16 секунд (3.10.2010 - 22:25) Invis1ble написал(а):
vik1249
регулярка здесь не причем, cудя по тому, что выдает print_r... Хотя я б ее немного переписал
preg_match_all('#<span class="price">(\d+)</span>#i', $grab, $matches);

так покрасивей будет, да и разбирать надо без учета регистра, т.к. теоретически может быть например <SPAN CLASS...
Ща испытаю твой скрипт

Спустя 18 минут, 59 секунд (3.10.2010 - 22:44) Invis1ble написал(а):
Вот это попробуй, а то мне походу на том сайте доступ закрыли (изза частого обращения к нему)
<?

if ($grab = @file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html"))
{
preg_match_all('#<span class="price" >\d+</span>#i', $grab, $matches);

echo '<pre>'; print_r($matches); echo '</pre>';

foreach ($matches[0] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}
}

else
echo "Connection Error";

?>

Спустя 14 минут, 4 секунды (3.10.2010 - 22:58) vik1249 написал(а):
Array
(
[0] => Array
(
[0] => 6269
[1] => 16380
[2] => 13485
[3] => 15016
[4] => 23795
[5] => 25465
[6] => 26450
[7] => 22249
[8] => 7412
[9] => 10486
[10] => 13981
[11] => 19345
[12] => 21981
[13] => 17784
[14] => 20585
[15] => 10139
[16] => 2930
[17] => 2930
[18] => 13666
[19] => 12357
[20] => 936
[21] => 1058
[22] => 3835
[23] => 4485
[24] => 4465
[25] => 3515
[26] => 3915
[27] => 15275
[28] => 4975
[29] => 2587
[30] => 2794
[31] => 2794
[32] => 2794
[33] => 3135
[34] => 3394
[35] => 3394
[36] => 3448
[37] => 4036
[38] => 4594
[39] => 4594
[40] => 3946
[41] => 3946
[42] => 3946
[43] => 4641
[44] => 5387
[45] => 5387
[46] => 5387
[47] => 6289
[48] => 6396
[49] => 7276
[50] => 8148
[51] => 8148
[52] => 7636
[53] => 8494
[54] => 10236
[55] => 10799
[56] => 10799
[57] => 10994
[58] => 10994
[59] => 4505
[60] => 4923
[61] => 4923
[62] => 4742
[63] => 4923
[64] => 4923
[65] => 4797
[66] => 5506
[67] => 9346
[68] => 10187
[69] => 10187
[70] => 10186
[71] => 9658
[72] => 10186
[73] => 15785
[74] => 6905
[75] => 6905
[76] => 7593
[77] => 7593
[78] => 7593
[79] => 7593
[80] => 6535
[81] => 7788
[82] => 3318
[83] => 3723
[84] => 3723
[85] => 4635
[86] => 4986
[87] => 4986
[88] => 5546
[89] => 6484
[90] => 6484
[91] => 10785
[92] => 8865
[93] => 8345
[94] => 9596
[95] => 9596
[96] => 9595
[97] => 6286
[98] => 6978
[99] => 6978
[100] => 8586
[101] => 9390
[102] => 9390
[103] => 10396
[104] => 10966
[105] => 10966
[106] => 10965
[107] => 12185
[108] => 13399
[109] => 13399
[110] => 13442
[111] => 13457
[112] => 9542
[113] => 9542
[114] => 9542
[115] => 13175
[116] => 14496
[117] => 14496
[118] => 14495
[119] => 10265
[120] => 11688
[121] => 12126
[122] => 12929
[123] => 12929
[124] => 12928
[125] => 1740
[126] => 5520
[127] => 5894
[128] => 4567
[129] => 3535
[130] => 5761
[131] => 5746
[132] => 15392
[133] => 16942
[134] => 7273
[135] => 10336
[136] => 11198
[137] => 3033
[138] => 3033
[139] => 2936
[140] => 3427
[141] => 3528
[142] => 3427
[143] => 4335
[144] => 4586
[145] => 6216
[146] => 2992
[147] => 13995
[148] => 14985
[149] => 3866
[150] => 4535
[151] => 4535
[152] => 4176
[153] => 4787
[154] => 4787
[155] => 5390
[156] => 5365
[157] => 5086
[158] => 5698
[159] => 5723
[160] => 6365
[161] => 6795
[162] => 6041
[163] => 6722
[164] => 6722
[165] => 7055
[166] => 7686
[167] => 7665
[168] => 5957
[169] => 6442
[170] => 3495
[171] => 3885
[172] => 3885
[173] => 4757
[174] => 12625
[175] => 13332
[176] => 11255
[177] => 12183
[178] => 12183
[179] => 12183
[180] => 12183
[181] => 10466
[182] => 8665
[183] => 9163
[184] => 9666
[185] => 9998
[186] => 9998
[187] => 18785
[188] => 5761
[189] => 5761
[190] => 5761
[191] => 1776
[192] => 1546
[193] => 420
)

)

6269(string)=>0(integer)
16380(string)=>0(integer)
13485(string)=>0(integer)
15016(string)=>0(integer)
23795(string)=>0(integer)
25465(string)=>0(integer)
26450(string)=>0(integer)
22249(string)=>0(integer)
7412(string)=>0(integer)
10486(string)=>0(integer)
13981(string)=>0(integer)
19345(string)=>0(integer)
21981(string)=>0(integer)
17784(string)=>0(integer)
20585(string)=>0(integer)
10139(string)=>0(integer)
2930(string)=>0(integer)
2930(string)=>0(integer)
13666(string)=>0(integer)
12357(string)=>0(integer)
936(string)=>0(integer)
1058(string)=>0(integer)
3835(string)=>0(integer)
4485(string)=>0(integer)
4465(string)=>0(integer)
3515(string)=>0(integer)
3915(string)=>0(integer)
15275(string)=>0(integer)
4975(string)=>0(integer)
2587(string)=>0(integer)
2794(string)=>0(integer)
2794(string)=>0(integer)
2794(string)=>0(integer)
3135(string)=>0(integer)
3394(string)=>0(integer)
3394(string)=>0(integer)
3448(string)=>0(integer)
4036(string)=>0(integer)
4594(string)=>0(integer)
4594(string)=>0(integer)
3946(string)=>0(integer)
3946(string)=>0(integer)
3946(string)=>0(integer)
4641(string)=>0(integer)
5387(string)=>0(integer)
5387(string)=>0(integer)
5387(string)=>0(integer)
6289(string)=>0(integer)
6396(string)=>0(integer)
7276(string)=>0(integer)
8148(string)=>0(integer)
8148(string)=>0(integer)
7636(string)=>0(integer)
8494(string)=>0(integer)
10236(string)=>0(integer)
10799(string)=>0(integer)
10799(string)=>0(integer)
10994(string)=>0(integer)
10994(string)=>0(integer)
4505(string)=>0(integer)
4923(string)=>0(integer)
4923(string)=>0(integer)
4742(string)=>0(integer)
4923(string)=>0(integer)
4923(string)=>0(integer)
4797(string)=>0(integer)
5506(string)=>0(integer)
9346(string)=>0(integer)
10187(string)=>0(integer)
10187(string)=>0(integer)
10186(string)=>0(integer)
9658(string)=>0(integer)
10186(string)=>0(integer)
15785(string)=>0(integer)
6905(string)=>0(integer)
6905(string)=>0(integer)
7593(string)=>0(integer)
7593(string)=>0(integer)
7593(string)=>0(integer)
7593(string)=>0(integer)
6535(string)=>0(integer)
7788(string)=>0(integer)
3318(string)=>0(integer)
3723(string)=>0(integer)
3723(string)=>0(integer)
4635(string)=>0(integer)
4986(string)=>0(integer)
4986(string)=>0(integer)
5546(string)=>0(integer)
6484(string)=>0(integer)
6484(string)=>0(integer)
10785(string)=>0(integer)
8865(string)=>0(integer)
8345(string)=>0(integer)
9596(string)=>0(integer)
9596(string)=>0(integer)
9595(string)=>0(integer)
6286(string)=>0(integer)
6978(string)=>0(integer)
6978(string)=>0(integer)
8586(string)=>0(integer)
9390(string)=>0(integer)
9390(string)=>0(integer)
10396(string)=>0(integer)
10966(string)=>0(integer)
10966(string)=>0(integer)
10965(string)=>0(integer)
12185(string)=>0(integer)
13399(string)=>0(integer)
13399(string)=>0(integer)
13442(string)=>0(integer)
13457(string)=>0(integer)
9542(string)=>0(integer)
9542(string)=>0(integer)
9542(string)=>0(integer)
13175(string)=>0(integer)
14496(string)=>0(integer)
14496(string)=>0(integer)
14495(string)=>0(integer)
10265(string)=>0(integer)
11688(string)=>0(integer)
12126(string)=>0(integer)
12929(string)=>0(integer)
12929(string)=>0(integer)
12928(string)=>0(integer)
1740(string)=>0(integer)
5520(string)=>0(integer)
5894(string)=>0(integer)
4567(string)=>0(integer)
3535(string)=>0(integer)
5761(string)=>0(integer)
5746(string)=>0(integer)
15392(string)=>0(integer)
16942(string)=>0(integer)
7273(string)=>0(integer)
10336(string)=>0(integer)
11198(string)=>0(integer)
3033(string)=>0(integer)
3033(string)=>0(integer)
2936(string)=>0(integer)
3427(string)=>0(integer)
3528(string)=>0(integer)
3427(string)=>0(integer)
4335(string)=>0(integer)
4586(string)=>0(integer)
6216(string)=>0(integer)
2992(string)=>0(integer)
13995(string)=>0(integer)
14985(string)=>0(integer)
3866(string)=>0(integer)
4535(string)=>0(integer)
4535(string)=>0(integer)
4176(string)=>0(integer)
4787(string)=>0(integer)
4787(string)=>0(integer)
5390(string)=>0(integer)
5365(string)=>0(integer)
5086(string)=>0(integer)
5698(string)=>0(integer)
5723(string)=>0(integer)
6365(string)=>0(integer)
6795(string)=>0(integer)
6041(string)=>0(integer)
6722(string)=>0(integer)
6722(string)=>0(integer)
7055(string)=>0(integer)
7686(string)=>0(integer)
7665(string)=>0(integer)
5957(string)=>0(integer)
6442(string)=>0(integer)
3495(string)=>0(integer)
3885(string)=>0(integer)
3885(string)=>0(integer)
4757(string)=>0(integer)
12625(string)=>0(integer)
13332(string)=>0(integer)
11255(string)=>0(integer)
12183(string)=>0(integer)
12183(string)=>0(integer)
12183(string)=>0(integer)
12183(string)=>0(integer)
10466(string)=>0(integer)
8665(string)=>0(integer)
9163(string)=>0(integer)
9666(string)=>0(integer)
9998(string)=>0(integer)
9998(string)=>0(integer)
18785(string)=>0(integer)
5761(string)=>0(integer)
5761(string)=>0(integer)
5761(string)=>0(integer)
1776(string)=>0(integer)
1546(string)=>0(integer)
420(string)=>0(integer)

Спустя 18 минут, 11 секунд (3.10.2010 - 23:16) Invis1ble написал(а):
Ну все, с тебя точно повышение кармы )))
Вот этот вариант точно должен быть рабочим:
<?

if ($grab = @file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html"))
{
preg_match_all('#<span class="price" >(\d+)</span>#i', $grab, $matches);

foreach ($matches[1] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}
}

else
echo "Connection Error";

?>
Лажа происходила изза того, что в $matches[0] содержались на самом деле не цифры, а вся строка <span ...>...</span>. Вот так-то!

Спустя 10 минут, 10 секунд (3.10.2010 - 23:27) arvitaly написал(а):
Здесь то да невнимательность, а на будущее могу посоветовать функцию

function getAsciiStr ($str)
{
for ($i=0;$i<strlen($str);$i++)
{
echo "<p>" . $str[$i] . "=" . ord($str[$i]) . "</p>\n";
}
}

Часто бывает в строке невидимые символы или разная кодировка, функция покажет ascii код всех символов строки и все сразу видно

Спустя 5 минут, 28 секунд (3.10.2010 - 23:32) Invis1ble написал(а):
arvitaly
тоже вариант.. токо твоя функция нерабочая будет rolleyes.gif
надо тогда уже substr в цикле юзать:
  function getASCIIStr($str)
{
for ($i = 0; $i < strlen($str); $i ++)
{
$char = substr($str, $i, 1);
echo $char . '=>' . ord($char) . '<br />';
}
}


$str = 'Hello, World!';
getASCIIStr($str);
как-то так..
Я кстати с помощью strlen и обнаружил, что длина строки 32-35 символов, вместо 3-6, и тут до меня доперло, где собака зарыта biggrin.gif

Спустя 14 минут, 57 секунд (3.10.2010 - 23:47) vik1249 написал(а):
Цитата (Invis1ble @ 3.10.2010 - 20:16)
Ну все, с тебя точно повышение кармы )))
Вот этот вариант точно должен быть рабочим:
<?

if ($grab = @file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html"))
{
preg_match_all('#<span class="price" >(\d+)</span>#i', $grab, $matches);

foreach ($matches[1] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}
}

else
echo "Connection Error";

?>
Лажа происходила изза того, что в $matches[0] содержались на самом деле не цифры, а вся строка <span ...>...</span>. Вот так-то!

аааааааааааа заработало спасибо огромное

Спустя 2 минуты, 9 секунд (3.10.2010 - 23:49) Invis1ble написал(а):
vik1249
Да пожалуйста.. Как это часто бывает, источник большой запары находится прямо под носом ))

Спустя 2 минуты, 22 секунды (3.10.2010 - 23:52) vik1249 написал(а):
а скажи пожалуйста а как ты понял про $matches[0]?

Спустя 3 минуты, 23 секунды (3.10.2010 - 23:55) Invis1ble написал(а):
vik1249
Цитата
Я кстати с помощью strlen и обнаружил, что длина строки 32-35 символов, вместо 3-6, и тут до меня доперло, где собака зарыта

Спустя 1 минута, 26 секунд (3.10.2010 - 23:56) Invis1ble написал(а):
vik1249
Можешь ради интереса попробовать:
<?

if ($grab = @file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html"))
{
preg_match_all('#<span class="price" >(\d+)</span>#i', $grab, $matches);

foreach ($matches[0] as $match)
{
$a = intval($match);
echo $match . '(' . gettype($match) . ')(' . strlen($match) . ')=>' . $a . '(' . gettype($a) . ')<br />';
}
}

else
echo "Connection Error";

?>

Спустя 10 минут, 13 секунд (4.10.2010 - 00:07) vik1249 написал(а):
я уже под свой скрипт подогнал все ок

$grab=@file_get_contents("http://pleer.ru/kpk-i-kommunikatory~all.html");
if ($grab) {
// Заменить теги переноса строки на простые переносы строки
$grab=str_replace("<br>","\n",$grab);
// Получить регулярным выражением тексты цитат
preg_match_all("/<span\sclass=\"price\"\s>([0-9]*)<\/span>/",$grab,$matches);
// В массиве содержатся все найденные строки
for ($i=0; $i<count($matches[0]); $i++) {


$c = intval($matches[1][$i]);
echo $c;
echo '<hr>';

}
}

else {
echo "Connection Error";
}
?>


да и еще до меня дошло почему так произошло(не описано не в одном учебнике)
в массив запмсываеться то что в регулярных выражениях в в скобках"()" но там же есть еще и общие для всей строки вот она по ходу и стала нулевой

Спустя 5 минут, 18 секунд (4.10.2010 - 00:12) Invis1ble написал(а):
vik1249
Говорю тебе, не пользуйся for в сочетании с count для перебора массивов - медленный способ, забудь про него. Юзай foreach , как я тебе показал - с ним вдобавок удобней работать, его специально придумали для работы с массивами.. И регулярку перепиши, так тру-программеры не пишут

Спустя 1 минута, 8 секунд (4.10.2010 - 00:13) vik1249 написал(а):
Цитата (Invis1ble @ 3.10.2010 - 21:12)
vik1249
Говорю тебе, не пользуйся for в сочетании с count для перебора массивов - медленный способ, забудь про него. Юзай foreach , как я тебе показал - с ним вдобавок удобней работать, его специально придумали для работы с массивами

возьму на заметку спасибо

Спустя 4 минуты, 40 секунд (4.10.2010 - 00:18) Invis1ble написал(а):
Цитата
да и еще до меня дошло почему так произошло(не описано не в одном учебнике)
в массив запмсываеться то что в регулярных выражениях в в скобках"()" но там же есть еще и общие для всей строки вот она по ходу и стала нулевой

в учебниках это есть, по-крайней мере в хороших.. Просто я че-то не обратил сразу на это внимание. Единственное, что я не понял - так это почему print_r($matches) не выдал всю строку в $matches[0], а только цифры показал dry.gif

Спустя 1 минута, 46 секунд (4.10.2010 - 00:19) Invis1ble написал(а):
Цитата
Говорю тебе, не пользуйся for в сочетании с count для перебора массивов - медленный способ, забудь про него. Юзай foreach , как я тебе показал - с ним вдобавок удобней работать, его специально придумали для работы с массивами
там еще я тебе ниже про регулярку дописал..

Спустя 6 минут, 11 секунд (4.10.2010 - 00:26) arvitaly написал(а):
Цитата
Единственное, что я не понял - так это почему print_r($matches) не выдал всю строку в $matches[0], а только цифры показал


Он выдал всю, просто ты смотрел видимо в браузере не исходный код

Invis1ble, почему ты решил, что мой код нерабочий?

Спустя 58 секунд (4.10.2010 - 00:27) vik1249 написал(а):
Цитата (Invis1ble @ 3.10.2010 - 21:19)
Цитата
Говорю тебе, не пользуйся for в сочетании с count для перебора массивов - медленный способ, забудь про него. Юзай foreach , как я тебе показал - с ним вдобавок удобней работать, его специально придумали для работы с массивами
там еще я тебе ниже про регулярку дописал..

а это да, я просто тока 3-й день занимаюсь, как сказать азы познаю smile.gif

Спустя 3 минуты, 56 секунд (4.10.2010 - 00:31) vik1249 написал(а):
Цитата (arvitaly @ 3.10.2010 - 21:26)
Цитата
Единственное, что я не понял - так это почему print_r($matches) не выдал всю строку в $matches[0], а только цифры показал


Он выдал всю, просто ты смотрел видимо в браузере не исходный код

Invis1ble, почему ты решил, что мой код нерабочий?

я дико извиняюсь посмотрите первый пост и посмотрите на него исходный код
там все пучком

Спустя 1 минута, 59 секунд (4.10.2010 - 00:33) Invis1ble написал(а):
vik1249
ну ниче, для 3-го дня очень даже неплохо. См. мою подпись ))
А до этого уже был какой-то опыт кодинга? В смысле, может на другом языке каком писал?

Спустя 1 минута, 17 секунд (4.10.2010 - 00:34) Invis1ble написал(а):
arvitaly
Да, действительно, ты прав.. Че-то я проморгал это дело, хотя исходный код смотрел. Теперь кстати понял, почему не выводил print_r )))
Насчет функции твоей - тоже я неправ. Я и не знал, что можно так символ строки получить - $str[$i] - щас проверил и прозрел.. респект, чувак

Спустя 3 минуты, 16 секунд (4.10.2010 - 00:37) vik1249 написал(а):
Цитата (Invis1ble @ 3.10.2010 - 21:33)
vik1249
ну ниче, для 3-го дня очень даже неплохо. См. мою подпись ))
А до этого уже был какой-то опыт кодинга? В смысле, может на другом языке каком писал?

любительски html, delphi-я как то сам себя озадачил написать базу данных 3 месяца писал, оеа мне не нужна ну сам факт было интересно

Спустя 5 минут, 18 секунд (4.10.2010 - 00:42) Invis1ble написал(а):
vik1249
В принципе, заметно, что не первый раз кодить сел. Не знаю, как-то интуитивно почуствовал наверное... Впрочем, это - уже оффтоп. Ладно, удачи и успехов !

Спустя 2 минуты, 41 секунда (4.10.2010 - 00:45) vik1249 написал(а):
Цитата (Invis1ble @ 3.10.2010 - 21:42)
vik1249
В принципе, заметно, что не первый раз кодить сел. Не знаю, как-то интуитивно почуствовал наверное... Впрочем, это - уже оффтоп. Ладно, удачи и успехов !

спасибо большое, Удачи!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.