Вход | Регистрация



Скрипт на PHP который читает файл txt

Скрипт на PHP который читает файл txt
Я
   ChunLee
 
20.10.16 - 08:14
Доброе утро. Есть цель сделать скрипт на PHP, который читает txt файл с адресами файлов которые разделены "/" и каждый кодирует в base64 с кодировкой utf8 и объединяет в одну строку. Может кто делал такую вещь?
 
 
   Asmody
 
1 - 20.10.16 - 08:36
(0) Файлы разделены '/'? Это кто ж такое придумал?
Но я ничего сложного не вижу, fopen() и дальше, дальше, потом fclose()
   ChunLee
 
2 - 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;
выходит следующая ошибка
   ChunLee
 
3 - 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-ом
   ChunLee
 
4 - 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;

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

Notepad++ нормально подсвечивает.
   ChunLee
 
13 - 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 можно запустить отладку?
   akaBrr
 
14 - 20.10.16 - 13:54
(0) Вам бы на Тостер.
   ChunLee
 
15 - 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
?>
всем спасибо
   Gary417
 
16 - 20.10.16 - 14:00
(13) <Через IDE можно запустить отладку?>

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

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

   arsik
 
28 - 20.10.16 - 15:20
Странно. У меня работают.
   arsik
 
29 - 20.10.16 - 15:23
(25) И да еще нужен спойлер тег - портянки сворачивать.
   Gary417
 
30 - 20.10.16 - 16:02
(21) (28) вот я обратил внимание все всегда путают слеши

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует