Имя: Пароль:
IT
 
Скрипт на PHP который читает файл txt
,
0 ChunLee
 
20.10.16
08:14
Доброе утро. Есть цель сделать скрипт на PHP, который читает txt файл с адресами файлов которые разделены "/" и каждый кодирует в base64 с кодировкой utf8 и объединяет в одну строку. Может кто делал такую вещь?
1 Asmody
 
20.10.16
08:36
(0) Файлы разделены '/'? Это кто ж такое придумал?
Но я ничего сложного не вижу, fopen() и дальше, дальше, потом fclose()
2 ChunLee
 
20.10.16
13:40
Уважаемые форумчане, подскажите какой прогой можно воспользоваться для написания и проверки кода PHP, что бы код подсвечивался, были всякие подсказки и можно было отлаживать написанный скипт. Я написал вот такой код. $text = fopen(C:\Keys\Docum\Files.txt, "r");
$len=strlen($text); //длина строки
$x=1;
while ($x<=$len)
$allfilesbase64='';
$sub=',';
$pos=strpos($text,$sub,$x);
if ($pos<=$len)
{
    $cut=substr($text,$x,$pos);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
    $x=$pos;
}
else
{
    $cut=substr($text,$x,$len);
    base64_encode($cut);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
}
endwhile;
выходит следующая ошибка
3 ChunLee
 
20.10.16
13:40
Parse error: syntax error, unexpected ':' in Z:\home\10.68.32.61\www\Undecodd\index.php on line 2
пользуюсь последним denwer-ом
4 ChunLee
 
20.10.16
13:41
<?php
$text = fopen(C:\Keys\Docum\Files.txt, "r");
$len=strlen($text); //длина строки
$x=1;
while ($x<=$len)
$allfilesbase64='';10.
$sub=',';
$pos=strpos($text,$sub,$x);
if ($pos<=$len)
{
    $cut=substr($text,$x,$pos);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
    $x=$pos;
}
else
{
    $cut=substr($text,$x,$len);
    base64_encode($cut);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
}
endwhile;

это полный код из файла
5 Gary417
 
20.10.16
13:42
(3) Судя по ошибке вы чтото не так делаете (файл не сохранили?)
6 Gary417
 
20.10.16
13:43
(2) а не, в кавычках путь же должен быть
7 Gary417
 
20.10.16
13:43
(2) +PHPStorm, netbeans
8 ChunLee
 
20.10.16
13:46
Исправил, теперь ругается на 7 строку
9 ChunLee
 
20.10.16
13:47
$sub=','
я этой строкой хотел присвоить значение "," переменной $sub
10 Gary417
 
20.10.16
13:48
(9) в 6 строке ковычки закройте
11 Gary417
 
20.10.16
13:48
и
1) поставьте себе IDE
2) читайте ошибки же! там всё написано
12 mistеr
 
20.10.16
13:48
(2) Изучить язык и разобраться в ошибках не предлагать?

Notepad++ нормально подсвечивает.
13 ChunLee
 
20.10.16
13:52
Parse error: syntax error, unexpected T_ENDWHILE in Z:\home\10.68.32.61\www\Undecodd\index.php on line 21

на этом застрял. Через IDE можно запустить отладку?
14 akaBrr
 
20.10.16
13:54
(0) Вам бы на Тостер.
15 ChunLee
 
20.10.16
14:00
Нашел сайт http://ideone.com/. На нем можно протестировать свой код, он сразу подсказывает ошибки. Все исправил отладил, реезультат получился такой
<?php
$text = fopen("C:\Keys\Docum\Files.txt", "r");
$len=strlen($text); //длина строки
$x=1;
while ($x<=$len){
$allfilesbase64='';
$sub=',';
$pos=strpos($text,$sub,$x);
if ($pos<=$len)
{
    $cut=substr($text,$x,$pos);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
    $x=$pos;
}
else
{
    $cut=substr($text,$x,$len);
    base64_encode($cut);
    $allfilesbase64=$allfilesbase64+base64_encode($cut);
}
}
echo $allfilesbase64
?>
всем спасибо
16 Gary417
 
20.10.16
14:00
(13) <Через IDE можно запустить отладку?>

Можно, но её нужно настроить, это несколько геморройное занятие
17 arsik
 
гуру
20.10.16
14:04
(16) Это вам не 1С, тут думать надо.
18 ChunLee
 
20.10.16
14:16
Народ подскажите если strpos не находит нужные данные в строке, какое значение он возвращает?
19 arsik
 
гуру
20.10.16
14:19
(18) Совсем не учат поиском пользоваться?
20 Gary417
 
20.10.16
14:20
21 Asmody
 
20.10.16
14:50
вот зачем я это делаю?!


<?php
$file_name = 'some_file_name.txt';
$delimiter = ',';
$content = file_get_contents($file_name);

$a_content = explode($content, $delimiter);
$result = array_reduce($a_content, "base64_encode", "");

[\1C]
22 Asmody
 
20.10.16
14:54
Только в explode() параметры наоборот: explode($delimite, $content). Я всегда их путаю.
23 arsik
 
гуру
20.10.16
15:00
(21) Ну вот сам путаешься. Давно уже пора кнопку оформления вынести на форму, вместо проверки орфографии. Она уже во все браузеры встроена.
24 arsik
 
гуру
20.10.16
15:01
+(23) и отключить авто оформление, иногда такой пипец, читать невозможно.
25 Asmody
 
20.10.16
15:03
(23) теги работают только в ветках 1С
26 Asmody
 
20.10.16
15:05
Вот так правильно: (только на "живых" проектах так писать не надо)

<?php

$file_name = 'some_file_name.txt';
$delimiter = ',';
$content = file_get_contents($file_name);

$result = array_reduce(
  explode($delimiter,$content),
  function($a,$i) {
    return $a.base64_encode($i);
  },
  ""
);
echo($result);
27 arsik
 
гуру
20.10.16
15:19
Надо проверить
Нужно, нужно
28 arsik
 
гуру
20.10.16
15:20
Странно. У меня работают.
29 arsik
 
гуру
20.10.16
15:23
(25) И да еще нужен спойлер тег - портянки сворачивать.
30 Gary417
 
20.10.16
16:02
(21) (28) вот я обратил внимание все всегда путают слеши

в винде пишут c:/windows/system32,  в юниксе \etc\apache2\ ... и блин тут тоже, тег [\1C]

как так жеж
31 Gary417
 
20.10.16
16:04
обратные слеши используются ТОЛЬКО в винде в адресах файловой системы, и больше нигде. как можно это путать не понимаю
32 Asmody
 
20.10.16
17:33
(29) Спойлер сам умный
Ошибка? Это не ошибка, это системная функция.