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 :: Версия для печати :: Обсуждение уроков. [8]
Форумы портала PHP.SU » PHP » Уроки php » Обсуждение уроков.

Страниц (11): В начало « ... 3 4 5 6 7 [8] 9 10 11 »
 

106. Champion - 15 Апреля, 2010 - 15:31:34 - перейти к сообщению
По поводу фигурной скобки. Не скажу, куда ее надо поставить. Потому что скрипты даны для понимания, а не для бездумного копирования. Опыт показывает, что обучение на скриптах, которые нужно отладить, проходит эффективнее.
Хотя, думаю, что ошибка не спициально допущена.
Тут даже не задумываясь над логикой скрипта видно, куда скобку вставить
(Добавление)
Petro пишет:
На сколько я знаю *. bmp
Расширение - это просто подсказка Винде, какой программой открыть файл.
107. Вова - 19 Мая, 2010 - 05:06:25 - перейти к сообщению
Здравствуйте господа разработчики, вопрос касаемый урока 3 или правильнй выразиться нашол там ошибку, в части передачи переменной по ссылке если она там допущена специально можно не читать дальше пост Улыбка когда я вставляю в приложение для чтение кода -
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function func(&$var1, &$var2)
  3. {
  4.     $res = $var1 + $var2;
  5.     $var2 = $var2 * 2;
  6.     $var1 = $var1 * $var2;
  7.     return $res;
  8. }
  9. $a = 3;
  10. $b = 4;
  11. echo func($a, $b); // 7
  12. echo $a; // 12
  13. echo $b; //8
  14. ?>

а затем -
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function func()
  3. {
  4.     global $var1, $var2;
  5.     $res = $var1 + $var2;
  6.     $var2 = $var2 * 2;
  7.     $var1 = $var1 * $var2;
  8.     return $res
  9. }
  10. $var1 = 3;
  11. $var2 = 4;
  12. echo func(); // 7
  13. echo $var1; // 12
  14. echo $var2; //8
  15. ?>


сначала подумал что из за отсутствия return $res <- ";", кстати ее там действительно нехватает. Но вся загвоздка оказалась в другом из за определяемой одинаковой функции "func", во втром коде переименовал на "funcc" и все заработало...может я чего не до понял, потому что не знаю что я не так сделал еще что деневр выдавал ошибку в коде...но после исправления все заработала.)) да и еще echo $var1; // 12 выводит не 12 а 24 не столь важно....можете удалить этот пост если он безпочвенный и ошибки были допущены умышленно что бы застваить юзера догадаться в чем..)

Вот мой вариант как мне кажеться должно было быть:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function func(&$var1, &$var2)
  3. {
  4.     $res = $var1 + $var2;
  5.     $var2 = $var2 * 2;
  6.     $var1 = $var1 * $var2;
  7.     return $res;
  8. }
  9. $a = 3;
  10. $b = 4;
  11. echo func($a, $b)." "; // 7
  12. echo $a." "; // 24
  13. echo $b." "; //8
  14. ?>
  15.  
  16. <?PHP
  17. echo "<br>";
  18. function funcc()
  19. {
  20. global $var1, $var2;
  21. $res = $var1 + $var2;
  22. $var2 = $var2 * 2;
  23. $var1 = $var1 * $var2;
  24. echo $res;
  25. }
  26. $var1 = 5;
  27. $var2 = 10;
  28. echo funcc()." ";// 15
  29. echo $var1." ";// 100
  30. echo $var2." ";// 20
  31. ?>


P.S. с уважением ManuL
108. EvgenyRus - 17 Июня, 2010 - 09:28:10 - перейти к сообщению
Вова поменяй 6 и 7 строку местами и будет не 24 а 12 выдовать! Ошибку допустили в том месте админы!
<?PHP
function func()
{
global $var1, $var2;
$res = $var1 + $var2;
$var2 = $var2 * 2;
$var1 = $var1 * $var2;
return $res
}
$var1 = 3;
$var2 = 4;
echo func(); // 7
echo $var1; // 12
echo $var2; //8
?>
109. koka - 10 Июля, 2010 - 20:26:19 - перейти к сообщению
Здравствуйте. Вопрос по уроку номер 11 (или 14) - CURL

Скажите, что это за символы, откуда они берутся
Цитата:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'action=login&imembername=valenok&ipassword=ne_skaju&submit=%C2%F5%EE%E4');

Например, у сайта, с которого мне нужно получить информацию стоит value=Авторизация.
В Live http Headers я эту информацию (символы) не нашёл.
Где мне можно перевести слово Авторизация в этот код. Или этого не обязательно делать???
110. Champion - 10 Июля, 2010 - 20:37:12 - перейти к сообщению
%C2%F5%EE%E4 - это слово Вход. Просто с ним сделали urlencode().
111. koka - 10 Июля, 2010 - 20:42:37 - перейти к сообщению
Champion пишет:
%C2%F5%EE%E4 - это слово Вход. Просто с ним сделали urlencode().

Спасибо, просто не знад такую банальную вещь Растерялся
(Добавление)
Вопрос по уроку номер 11 (или 14) - CURL.

Как можно разобрать регулярным выражением
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $ch = curl_init('http://ssdfwerf.ru');
  3. curl_setopt($ch, CURLOPT_POST, 1);
  4. curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (бла бла бла..) ");
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, 'login=ssss&pass=ssss&rem=1&submit=%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F');
  6. curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_NOPROGRESS, 1);
  9. curl_setopt($ch, CURLOPT_CURLOPT_FILE, "grab.txt");
  10. //array = curl_multi_getcontent($ch);
  11.  
  12. preg_match('|(.*)<body>(.*)</body>|is', curl_multi_getcontent($ch), $data);
  13. echo $data;
  14.  
  15.  
  16.  
  17. ?>    


При работе функции preg_match выдаёт
CODE (html):
скопировать код в буфер обмена
  1. Array

Также пишет ошибку
PHP:
скопировать код в буфер обмена
  1. curl_setopt(): supplied argument is not a valid File-Handle resource in /home/site/public_html/test/test.php on line 9
112. Champion - 10 Июля, 2010 - 21:31:51 - перейти к сообщению
$data - массив. Массив можн просмотреть функцией var_dump($data);
Ошибку выдает - не знаю почему... может быть буква с русская в $ch.
113. koka - 10 Июля, 2010 - 21:39:03 - перейти к сообщению
Champion пишет:
$data - массив. Массив можн просмотреть функцией var_dump($data);
Ошибку выдает - не знаю почему... может быть буква с русская в $ch.

Проверил русской буквы в ch нет.....

Использовал var_dump($data), выдаёт

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

Изменил регулярное выражение на preg_match('|(.*)<body>(.*)</body>|is',curl_multi_getcontent($ch), $data, $m);, теперь всё выдаёт нормально.
Но с ошибкой
CODE (html):
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_CURLOPT_FILE, "grab.txt");
так и не разобрался... Огорчение
114. Champion - 11 Июля, 2010 - 21:12:50 - перейти к сообщению
Не увидел отличий в новом и старом регулярном выражении... CURLOPT_CURLOPT_FILE - что за опция такая?
115. koka - 12 Июля, 2010 - 09:39:57 - перейти к сообщению
Champion пишет:
Не увидел отличий в новом и старом регулярном выражении... CURLOPT_CURLOPT_FILE - что за опция такая?


Это у меня была опечатка, сам заметил и исправил.
Но всё равно не работает, выдаёт ту же ошибку.

По поводу регулярного выражения. Я добавил $m.
После этого, как ни странно, всё стало нормально выводиться......
116. clasik - 10 Сентября, 2010 - 02:31:35 - перейти к сообщению
Угу а по другому его не как не получается писать
117. DlTA - 10 Октября, 2010 - 06:25:10 - перейти к сообщению
EuGen пишет:
Старайтесь продумывать его так, чтобы его было легко масштабировать.

вот тут бы я хотел переспросить
КАК ОН ДОЛЖЕН ПИСАТЬСЯ чтобы был масштабируемым, и как не надо писать что бы не получилось наоборот?
118. alexsheva - 18 Января, 2011 - 12:49:54 - перейти к сообщению
На странице Урок № 1 - Самые основы[dot] ошибка в комментах:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $ARRAY = Array // числовой. Ключи 0,1 и 2
  4. (
  5. Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
  6. Array('key'=>'val' , 'key2'=>'val2') , // Ассоц. Ключи key и key2
  7. Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 0
  8. );
  9.  
  10. // Для обращения к какому либо элементу многомерного массива, к примеру к val3
  11. // следует обращаться так:
  12. echo $ARRAY[2]['key3'];
  13. // В массиве ARRAY обращаемся сначала к элементу номер 2 [ Array('key3'=>'val3', 'Чипсы')  ]
  14. // а там к элементу с ключом key3
  15.  
  16.  
  17. $arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));
  18. echo $arr["somearray"][6];    // 5
  19. echo $arr["somearray"][13];   // 9
  20. echo $arr["somearray"]["a"];  // 42
  21.  
  22. ?>


Строка 7: Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 2
119. Мелкий - 18 Января, 2011 - 12:57:07 - перейти к сообщению
alexsheva пишет:
Строка 7: Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 2

Не подтверждаю.
PHP:
скопировать код в буфер обмена
  1. var_dump($ARRAY = Array // числовой. Ключи 0,1 и 2
  2. (
  3. Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
  4. Array('key'=>'val' , 'key2'=>'val2') , // Ассоц. Ключи key и key2
  5. Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 0
  6. ));

php пишет:
array(3) {
[0]=>
array(2) {
[0]=>
string(6) "Сыр"
[1]=>
string(14) "Колбаса"
}
[1]=>
array(2) {
["key"]=>
string(3) "val"
["key2"]=>
string(4) "val2"
}
[2]=>
array(2) {
["key3"]=>
string(4) "val3"
[0]=>
string(10) "Чипсы"
}
}
120. alexsheva - 18 Января, 2011 - 14:23:44 - перейти к сообщению
Да! Все верно!
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. $ARRAY = Array // числовой. Ключи 0,1 и 2
  4. (
  5.  Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
  6.  Array('key'=>'val' , 'key2'=>'val2') , // Ассоц. Ключи key и key2
  7.  Array('key3'=>'val3', 'Чипсы') // Тоже Ассоц. Ключи key3 и 0
  8. );
  9.  
  10. // Для обращения к какому либо элементу многомерного массива, к примеру к val3
  11. // следует обращаться так:
  12. echo $ARRAY[2]['key3'];
  13. // В массиве ARRAY обращаемся сначала к элементу номер 2 [ Array('key3'=>'val3', 'Чипсы')  ]
  14. // а там к элементу с ключом key3
  15.  
  16. echo '<pre>';
  17. print_r($ARRAY) ;
  18. '</pre>'
  19.  
  20.  
  21. ?>

Возвращает результат
PHP:
скопировать код в буфер обмена
  1. (
  2.     [0] => Array
  3.         (
  4.             [0] => Сыр
  5.             [1] => Колбаса
  6.         )
  7.  
  8.     [1] => Array
  9.         (
  10.             [key] => val
  11.             [key2] => val2
  12.         )
  13.  
  14.     [2] => Array
  15.         (
  16.             [key3] => val3
  17.             [0] => Чипсы
  18.         )
  19.  
  20. )
  21.  

Отсюда наглядно видно, что обращаемся к объекту с индексом [2] многомерного массива. Для новичка, такого как я, это было не совсем понятно. Я посчитал, что элемент 'Чипсы' равен идентификатору [2]. По аналогии :
Array('Сыр','Колбаса') , // числовой. Ключами являются 0 и 1
посчитал Array('key3'=>'val3', 'Чипсы') 'Чипсы' числовой, идентификатор [2].
Спасибо!

 

Powered by ExBB FM 1.0 RC1