John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
ashifin
По заданию к 7 уроку по основам php/ "Откройте текстовый файл в «Блокноте» или любом другом редакторе с помощью скрипта на PHP."
Тоже как то не понял вопрос, нашел решение через массивы, но как бы ведь это 7 урок только!))
Возможно нужно покапать справочник и найти функцию.
Нашел в справочнике в расширениях для работы с системой..
В уроке как раз про это говорилось на примере `date`.
В общем, моё решение:
- предварительно создайте файл txt рядом файлом скрипта, чтобы с путём не заморачиваться.
- далее напишите следующий код:
$file = 'myfile.txt';
echo exec($file);
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
Задача №14
Кто как решил?
Моё решение:
$staff = [
[
'name' => 'Петя',
'age' => 22
],
[
'name' => 'Вася',
'age' => 27
],
[
'name' => 'Коля',
'age' => 25
]
];
$sumAge = 0;
foreach ($staff as $value) {
$sumAge += $value['age'];
}
$sAge = $sumAge / 2;
echo 'Средний возраст сотрудников: ' . $sAge;
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
Моё решение 19 задачи (насколько я понял условие):
$sum = function($a, $b)
{
return $a + $b;
};
//echo $sum(5, 10);
function test(array $arr, $func)
{
if(count($arr)%2 != 0) return;
foreach ($arr as $v) {
if(!is_numeric($v)) return;
}
for($i = 0; $i < count($arr); $i++) {
if($i % 2 == 0) $a = $arr[$i];
else {
$b = $arr[$i];
echo $func($a, $b) . ', ';
}
}
}
$arr = [1,2,3,4,5,'0'];
test($arr, $sum); //3, 7, 5,
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
20-я задача, вроде несложная.
/**
* @param $arr2d2 - двумерный числовой массив
* @param $averArr - анонимная функция
* @return Generator - передающий внутренний массив для вычисления
*/
function gener($arr2d2, $averArr)
{
foreach ($arr2d2 as $v) yield $averArr($v);
}
//двумерный числовой массив
$arr2d2 =[
[1,2,3,4,5],
[6,7,8,9,10]
];
//запускаем генератор
$gener = gener($arr2d2, function($v)//принимаем внутренний числовой массив
{
$sum = 0; //начальное значение суммы элементов переданного массива
foreach ($v as $val) $sum += $val; //считаем сумму всех элементов массива
return $sum / count($v); //возвращаем среднее значение
});
//итерируем(или генерируем)
foreach ($gener as $v) echo "$v, ";
John Doe
Продвинутый
Дата регистрации:
14.01.2019 19:23:31
Сообщений: 42
№1_23
Тут пришлось повозиться (из-за многобайтности), а так, вроде, просто:
<?php
$iStr = $oStr = false;
if(isset($_POST['text'])) {
$iStr = $_POST['iString'] ?? false;
for ($i = 0; $i < mb_strlen($iStr); $i++) {
$arr[] = mb_substr($iStr, $i, 1, 'UTF-8';
}
$oStr = '';
if(!empty($iStr)) {
for ($i = 0; $i < count($arr); $i++) {
if ($i % 2 !== 0) continue;
$oStr .= $arr[$i];
}
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<textarea name="iString" id="" cols="30" rows="10" value=""><?=$iStr?></textarea>
<input type="submit" name="text" value="Расстрочить">
</form>
<?php if(!empty($oStr)) :?>
<p>Пришла строка: <?=$iStr?></p>
<p>А получилась: <?=$oStr?></p>
<?php endif ?>
elk27ok_myrus
Новичок
Дата регистрации:
11.01.2019 08:49:54
Сообщений: 5
В ответ на это дааавнее сообщение:
Обсуждение по решению задач курса PHP и MySQL с Нуля до Гуру 2.0
24.08.2017 23:05:45 ctalkep777
Всем привет! Не понял ДЗ в разделе Основы языка PHP > 7. Строковые операции > 5. * Откройте текстовый файл в «Блокноте» или любом другом редакторе с помощью скрипта на PHP.
+
29.08.2017 17:20:05 Tahmasib
Сначала тоже не понял ))).
Рыл в сторону
system — Выполнить внешнюю программу и отобразить вывод
http://php.net/manual/ru/function.system.php
file_get_contents
http://php.net/manual/ru/function.file-get-contents.php
и т.д. - всё не то.
А вот exec — Выполнить внешнюю программу
http://php.net/manual/ru/function.exec.php
- сработал
Выглядит так:
exec( '"c:\DATA\...\sublime_text.exe" index0.txt' );
В общем виде:
exec( '"путь_к_программе_редактору\запускаемый_файл_программы_редактора" файл_который_нужно_редактировать' );
ВАЖНО! exec( ОДИНАРНАЯ кавычка ДВОЙНАЯ КАВЫЧКА[пробела_после_кавычек_нет]путь_к_редактору[пробела_перед_кавычками_нет]ДВОЙНАЯ КАВЫЧКА редактируемый_файл ОДИНАРНАЯ кавычка );
elk27ok_myrus
Новичок
Дата регистрации:
11.01.2019 08:49:54
Сообщений: 5
14.01.2019 19:31:28 ashivin
Без echo делал:
exec( '"путь_к_файлу_программы_редактора" редактируемый_файл.txt' )
;
//порядок кавычек важен: одинарная двойные*двойные * одинарная
geri14
Новичок
Дата регистрации:
24.02.2019 12:27:05
Сообщений: 2
<?php
function cmp($a, $b){
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$a = array(3, 2, 5, 6, 1);
usort($a, "cmp"
;
print_r($a);
?>
Подскажите откуда в этом случае функция получает переменные a и b
elk27ok_myrus
Новичок
Дата регистрации:
11.01.2019 08:49:54
Сообщений: 5
Присоединяюсь к вопросу.
Прикольно. При любом "прямом" вызове
cmp (как и задано) должно быть 2 определенных параметра.
К примеру (чтобы не вводить себя во искушение, заменим "внешнюю" $a на $r – без вариантов –совершенно разные переменные):
function cmp($a, $b){
if ($a == $b) return 0;
return ($a < $b) ? -1 : 1;
}
$r = array(3, 2, 5, 6, 1);
usort($r, "cmp"
echo '<br> print_r($r)<br>';
print_r($r);
$any = NULL;
$var = cmp($r, $any);
echo '<br>'. gettype($var);
echo '<br> print_r($var = cmp($r,$any))<br>';
print_r($var);
Получаем:
print_r($r)
Array ( [0] => 1 [1]=> 2 [2] => 3 [3] => 5 [4] => 6 )
integer
print_r($var = cmp($r,$any))
1
По крайней мере, второй параметр в
cmp может быть: целым, строкой, булевым, массивом, NULL - на результат не влияет! Если только
$any = true, то $var будет 0, в других случаях 1.
Здесь – типа ответ:
https://ideone.com/ubi7Aq
Я всё равно не вкуриваю:
"внутренние" для функции переменные"А и Б" (сидели на трубе)
cmp в этой части:
usort($r, "cmp"
как находит?
P.S. Скачок в сторону - к товарищам разработчикам:
вот в такой последовательности: "кавычки" "правая круглая скобка"
"точка с запятой" - на вашем сайте не отображается "правая круглая скобка
"...
Chechelsk
Новичок
Дата регистрации:
27.10.2018 18:17:18
Сообщений: 4
вопрос John Doe - Привет. Скажи как с тобой можно связаться (email, скайп, viber)?
или напиши мне пожалуйста
[email protected]
Спасибо.