Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.09.2009, 16:33
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
Сообщение от Gray_Wolf
38.
PHP код:
<?php
function ch($num,$str){
$res=str_split($str);
$i=0;
while ($i < count($num)){
$cn=$num[$i]-1;
$res[$cn]=strtoupper($res[$cn]);
$i++;
}
return implode("",$res);
}
?>
наркоманы млять
PHP код:
<?php
function ch($num,$str){
foreach($num as $key => $value)
$str[$value-1] = strtoupper($str[$value-1]);
return $str;
}
?>
39:
Выведет 0
Я не знаю почему так, но думаю из-за следующего.
Все происходит из-за динамического определения типа переменной.
ноль вначале свидетельствует что значение переменной - восьмеричное число, но так как после нуля идет 8, чего в восмеричном представлении быть не может, то число превращается в ноль.
Еще раз повторю, что я не знаю почему так, но с другими системами счисления не получилось добиться такого результата. в десятично и шестнадцатиричном все время ругается так:
Parse error: syntax error, unexpected T_STRING
А вообще я просто не знаю где об этом можно нормально почитать. Отсюда и все проблемы
40:
PHP код:
<?php
$a[1]['a'] = 'lol';
$a[1]['b'] = 'heh';
$a[2]['a'] = 'gygy';
$a[2]['b'] = 'smeh';
$b = array();
$i = 0;
foreach($a as $val)
foreach($val as $value => $key)
$b[$i++] = $key;
print_r($b);
?>
хотя думаю можно как-нибудь и покороче сделать
Последний раз редактировалось gisTy; 19.09.2009 в 11:00..
|
|
|

19.09.2009, 23:17
|
|
Новичок
Регистрация: 15.09.2009
Сообщений: 1
Провел на форуме: 4987
Репутация:
4
|
|
Задание 40:
PHP код:
<?php
$a[1]['a'] = 'lol';
$a[1]['b'] = 'heh';
$a[2]['a'] = 'gygy';
$a[2]['b'] = 'smeh';
$result = array();
slice_array( $a );
echo '<pre>';
print_r( $result );
function slice_array( $array = array() ) {
global $result;
foreach( $array as $value ) {
if( is_array( $value ) ) slice_array( $value );
else $result[] = $value;
}
}
?>
Эта функция "плющит" любой массив...
Ну или если не хотите заморачиваться с глобальными переменными:
PHP код:
function slice_array( $array = array(), &$result ) {
foreach( $array as $value ) {
if( is_array( $value ) ) slice_array( $value, $result );
else $result[] = $value;
}
}
Первый аргумент - массив который надо плющить, а второй - куда все запишется ( передается указатель на массив, т.е. он должен быть заранее определен )
Задача 39:
восьмеричные числа имеют следующее правило:
0[0-7]+
ноль впереди и дальше числа от 0 до 7 ( не выше - на то они и восьмеричные числа ). все что выше == 0
Поэтому эта программа выведет 0. Чтобы вывести 8 нужно написать: 010
По поводу задачи 38 - думаю gisTy норм решение дал...
Последний раз редактировалось Van Bekannt; 19.09.2009 в 23:40..
|
|
|

22.09.2009, 10:39
|
|
Участник форума
Регистрация: 29.11.2005
Сообщений: 122
Провел на форуме: 1050637
Репутация:
27
|
|
Задание 38
Код:
function ch($num,$str){
foreach($num as $value)
if($value<strlen($str))
$str[$value-1] = strtoupper($str[$value-1]);
return $str;
}
во первых там $key в foreach не нужен если на то уже пошло... и небольшой проверки на то что если значение в массиве больше чем букв в строке тоже как бы не мешало 
|
|
|

22.09.2009, 10:46
|
|
Участник форума
Регистрация: 29.11.2005
Сообщений: 122
Провел на форуме: 1050637
Репутация:
27
|
|
и сам же забыл поставить -1 в if-е 
|
|
|

22.09.2009, 11:03
|
|
Познающий
Регистрация: 21.06.2006
Сообщений: 74
Провел на форуме: 2441743
Репутация:
222
|
|
Задание 039
Что выведет скрипт и почему.
PHP код:
<?php
$i = 08;
echo $i;
?>
Выведет 0 потому что,без кавычек считается что это числовое значение.
|
|
|

06.10.2009, 15:07
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
2 новых задания ждут вас)
|
|
|

06.10.2009, 16:14
|
|
Новичок
Регистрация: 02.02.2006
Сообщений: 28
Провел на форуме: 351198
Репутация:
54
|
|
задание 41
содержимое файла sort.php
PHP код:
if(str_replace('\\', '/', __FILE__) != $_SERVER['SCRIPT_FILENAME']) echo 'included'; else echo 'svoi';
|
|
|

06.10.2009, 16:52
|
|
Banned
Регистрация: 14.01.2009
Сообщений: 515
Провел на форуме: 1996429
Репутация:
468
|
|
мона еще и подругому)
|
|
|

06.10.2009, 18:34
|
|
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме: 6075534
Репутация:
2731
|
|
№ 41
PHP код:
<?php
if ('/' . $lamer != $_SERVER['PHP_SELF'])
{
die('Hacking attempt!');
}
?>
|
|
|

06.10.2009, 22:53
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
#41
PHP код:
echo (strpos(__FILE__,$_SERVER['PHP_SELF']) !== false) ? "all right\n" : "include\n";
как-то так
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|