PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 12
Dorn Отправлено: 17 Декабря, 2023 - 09:12:36 • Тема: Удалить Пустые Cтроки из explode • Форум: Вопросы новичков

Ответов: 1
Просмотров: 388
Друзья, всё работает, дело было в кривых руках Улыбка
У меня другой вопрос: как вывести значения назначенной колонки всех строк из файла?

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $filename = 'test.php'; //содержимое — ниже
  4.  
  5. /*
  6. sectionName###sNum###productName###setsAmounts###
  7. section1###1###TEST-001###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. section11###11###TEST-011###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
  18.  
  19.  
  20. */
  21.  
  22.  
  23. $buffer=explode("\n",file_get_contents($filename)); //Split data to array for each "\n"
  24. $bufferCounted = count($buffer);
  25.  
  26. for($i = 1; $i < $bufferCounted; $i++){ //i++
  27. $numStringAll = $buffer[$i];
  28. $numStringContent=explode('###',$numStringAll);
  29. $setsAmounts=$numStringContent[3];
  30. $AllAmmounts = array_column($buffer, $setsAmounts);
  31. } //i++
  32. echo $AllAmmounts;
  33.  
Dorn Отправлено: 15 Декабря, 2023 - 21:48:59 • Тема: Удалить Пустые Cтроки из explode • Форум: Вопросы новичков

Ответов: 1
Просмотров: 388
Здравствуйте, уважаемые Гуру =)

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $filename = 'test.php'; //содержимое — ниже
  3.  
  4. /*
  5. sectionName###sNum###productName###setsAmounts###
  6. section1###1###TEST-001###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. section11###11###TEST-011###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
  17.  
  18.  
  19. */
  20.  
  21. $buffer=explode("\n",file_get_contents($filename)); //Split data to array for each "\n"
  22. $bufferFiltered = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", PHP_EOL, $buffer);// не работает
  23.  
  24. $bufferCounted = count($buffer);
  25.  
  26. for($i = 1; $i < $bufferCounted; $i++){
  27.  
  28. $numStringAll = $bufferFiltered[$i];
  29. $numStringContent=explode('###',$numStringAll);
  30. $sectionName=$numStringContent[0];
  31. $sNum=$numStringContent[1];
  32. $productName=$numStringContent[2];
  33. $setsAmounts=$numStringContent[3];
  34. echo $sectionName.'-'.$sNum.'-'.$productName.'-'.$setsAmounts.'<br />';
  35.  
  36. }
  37.  
  38.  
  39.  
  40.  
Dorn Отправлено: 19 Ноября, 2022 - 14:20:50 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1613
Если это не ярый костыль (вроде вполне норм), то вот решение:
$fileArray[1][1] = $fileArray[1][1].'123456';
Dorn Отправлено: 18 Ноября, 2022 - 17:47:37 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1613
Ну нет, конечно. Так оно не работает, вы же код точно видели.

LML пишет:
Dorn пишет:
Скажите, пожалуйста, а если я хочу именно дописать, то как могу я это сделать?
Наверное, через file_put_contents, но пока знаний не хватает )


Конечно же, и лучше и проще будет использование file_put_contents.

PHP:
скопировать код в буфер обмена
  1. file_put_contents($fileName, $fileString, FILE_APPEND|LOCK_EX);


Флаг FILE_APPEND указывает, что дописывать необходимо в конец файла.
Флаг LOCK_EX блокирует запись данного файла одновременно кем-нибудь другим.

В Вашем случае можно только сменить тип доступа с w на a.



'w' - Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пытается его создать.

'a' - Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются в конец.
Dorn Отправлено: 11 Ноября, 2022 - 13:16:14 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1613
Скажите, пожалуйста, а если я хочу именно дописать, то как могу я это сделать?
Наверное, через file_put_contents, но пока знаний не хватает )




Vladimir Kheifets пишет:
Dorn пишет:
Уважаемые форумчане, нашел вот такое решение для вопроса, но вылетает ошибка.
Скажите, пожалуйста, что тут не так?


file.txt:
000|000|000|000|000|
111|Задача перезаписать или добавить сюда 123456|111|111|111|
111|111|111|111|111|

PHP:
$fileName = "file.txt";
function file2Array( $fileName ){
$out = array();
$rows = file( $fileName );
foreach( $rows as $rowNr => $row )
$out[$rowNr] = explode( "|", $row );
return $out;
}

function array2File( $array, $fileName ){
$fileString = "";
foreach($array as row) //PHP ругается на эту строку syntax error, unexpected ')', expecting '['
$fileString .= implode( "|", $row );
$fp = fopen( $fileName, "w" );
fwrite( $fp, $fileString );
fclose( $fp );
}

$fileArray = file2Array( $fileName );
$fileArray[1][2] = '123456';
array2File( $fileArray, $fileName );


Добрый день!
Если совсем поверхностно,только по синтаксису, то в строке
потерян символ $ перед row, т.е. это интепретируется как константа, а не переменная.
Удачи!
Dorn Отправлено: 08 Ноября, 2022 - 17:55:30 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1613
Невнимательность однако моя. Владимир, большое спасибо, я счастлив, оказывается так и вправду можно делать, всё работает, годный код! Улыбка


Vladimir Kheifets пишет:
Dorn пишет:
Уважаемые форумчане, нашел вот такое решение для вопроса, но вылетает ошибка.
Скажите, пожалуйста, что тут не так?


file.txt:
000|000|000|000|000|
111|Задача перезаписать или добавить сюда 123456|111|111|111|
111|111|111|111|111|

PHP:
$fileName = "file.txt";
function file2Array( $fileName ){
$out = array();
$rows = file( $fileName );
foreach( $rows as $rowNr => $row )
$out[$rowNr] = explode( "|", $row );
return $out;
}

function array2File( $array, $fileName ){
$fileString = "";
foreach($array as row) //PHP ругается на эту строку syntax error, unexpected ')', expecting '['
$fileString .= implode( "|", $row );
$fp = fopen( $fileName, "w" );
fwrite( $fp, $fileString );
fclose( $fp );
}

$fileArray = file2Array( $fileName );
$fileArray[1][2] = '123456';
array2File( $fileArray, $fileName );


Добрый день!
Если совсем поверхностно,только по синтаксису, то в строке
потерян символ $ перед row, т.е. это интепретируется как константа, а не переменная.
Удачи!
Dorn Отправлено: 04 Ноября, 2022 - 01:11:46 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков

Ответов: 7
Просмотров: 1613
Уважаемые форумчане, нашел вот такое решение для вопроса, но вылетает ошибка.
Скажите, пожалуйста, что тут не так?


file.txt:
000|000|000|000|000|
111|Задача перезаписать или добавить сюда 123456|111|111|111|
111|111|111|111|111|

PHP:
$fileName = "file.txt";
function file2Array( $fileName ){
$out = array();
$rows = file( $fileName );
foreach( $rows as $rowNr => $row )
$out[$rowNr] = explode( "|", $row );
return $out;
}

function array2File( $array, $fileName ){
$fileString = "";
foreach($array as row) //PHP ругается на эту строку syntax error, unexpected ')', expecting '['
$fileString .= implode( "|", $row );
$fp = fopen( $fileName, "w" );
fwrite( $fp, $fileString );
fclose( $fp );
}

$fileArray = file2Array( $fileName );
$fileArray[1][2] = '123456';
array2File( $fileArray, $fileName );
Dorn Отправлено: 13 Октября, 2022 - 09:26:36 • Тема: Добавить параметры в ID сессии PHP • Форум: Вопросы новичков

Ответов: 2
Просмотров: 41272
Vladimir Kheifets пишет:


Добрый день!

Видимо имеется ввиду не:
Новая сессия == $var1.session_id().$var2;
а это:
$newSessionId = $var1.session_id().$var2;


Владимир, спасибо вам большое. Вы абсолютно верно всё сказали, еще раз спасибо и будьте здоровы!
Dorn Отправлено: 21 Сентября, 2022 - 07:45:36 • Тема: Добавить параметры в ID сессии PHP • Форум: Вопросы новичков

Ответов: 2
Просмотров: 41272
Всем добрый день Улыбка

Могу ли я добавить свои параметры в ID сессии PHP стандартными средствами PHP (без использования php.ini и пр)?

Именно перезаписать созданную сессию, а не создать свою.

Условно вот так:
Новая сессия == $var1.session_id().$var2;

Пока использую костыли с записью в отдельный файл.
Dorn Отправлено: 27 Июня, 2022 - 17:40:12 • Тема: Создание массива и присвоить переменным значения array_pop чисел • Форум: Вопросы новичков

Ответов: 3
Просмотров: 963
Это бо жест вен но! И стиль и слог и код =)
Как будто учебник открылся мне человеческой стороной :-*
Dorn Отправлено: 27 Июня, 2022 - 12:50:34 • Тема: Создание массива и присвоить переменным значения array_pop чисел • Форум: Вопросы новичков

Ответов: 3
Просмотров: 963
//Тасуем (shuffle) все карты (N) и выбираем (array_pop) несколько (M) верхних
function rndCards($M, $N) {
for ($i=1;$i<=$N;$i++) $all[]=$i; shuffle($all);
for ($i = 1; $i <=$M ; ++$i) {
$charasters = array_pop($all);
echo $charasters.' <br /> '.$array[$charasters] . PHP_EOL;
}
}

//вытаскиваем 3 из 78
rndCards(3, 78);
/*
как сделать так, чтобы он сам создал массив с переменными нужного количества (M) например
$rndCard.$отодногодотрёх
и присвоил им выбранные значения? Пример для выпавших чисел 16/34/22


$rndCard1 = file_get_contents('16.php');
$rndCard2 = file_get_contents('34.php');
$rndCard3 = file_get_contents('22.php');


*/

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB