PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 12
Dorn
Отправлено: 17 Декабря, 2023 - 09:12:36 • Тема: Удалить Пустые Cтроки из explode • Форум: Вопросы новичков
Ответов: 1 Просмотров: 388
Друзья, всё работает, дело было в кривых руках
У меня другой вопрос: как вывести значения назначенной колонки всех строк из файла?
CODE (
htmlphp ):
скопировать код в буфер обмена
$filename = 'test.php'; //содержимое — ниже
/*
sectionName###sNum###productName###setsAmounts###
section1###1###TEST-001###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
section11###11###TEST-011###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
*/
$buffer=explode("\n",file_get_contents($filename)); //Split data to array for each "\n"
$bufferCounted = count($buffer);
for($i = 1; $i < $bufferCounted ; $i ++ ) { //i++
$numStringAll = $buffer [ $i ] ;
$numStringContent = explode ( '###' , $numStringAll ) ; $setsAmounts = $numStringContent [ 3] ;
$AllAmmounts = array_column( $buffer , $setsAmounts ) ;
} //i++
echo $AllAmmounts ;
Dorn
Отправлено: 15 Декабря, 2023 - 21:48:59 • Тема: Удалить Пустые Cтроки из explode • Форум: Вопросы новичков
Ответов: 1 Просмотров: 388
Здравствуйте, уважаемые Гуру =)
CODE (
htmlphp ):
скопировать код в буфер обмена
$filename = 'test.php'; //содержимое — ниже
/*
sectionName###sNum###productName###setsAmounts###
section1###1###TEST-001###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
section11###11###TEST-011###1,,,,,2,,,,,3,,,,,,,,,,,,,,###
*/
$buffer=explode("\n",file_get_contents($filename)); //Split data to array for each "\n"
$bufferFiltered = preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", PHP_EOL, $buffer);// не работает
$bufferCounted = count($buffer);
for($i = 1; $i < $bufferCounted ; $i ++ ) {
$numStringAll = $bufferFiltered [ $i ] ;
$numStringContent = explode ( '###' , $numStringAll ) ; $sectionName = $numStringContent [ 0] ;
$sNum = $numStringContent [ 1] ;
$productName = $numStringContent [ 2] ;
$setsAmounts = $numStringContent [ 3] ;
echo $sectionName . '-' . $sNum . '-' . $productName . '-' . $setsAmounts . '<br /> ';
}
Dorn
Отправлено: 18 Ноября, 2022 - 17:47:37 • Тема: Запись в файл: как до- или пере-записать столбец без перезаписи всей строки? • Форум: Вопросы новичков
Ответов: 7 Просмотров: 1613
Ну нет, конечно. Так оно не работает, вы же код точно видели.
LML пишет: Dorn пишет: Скажите, пожалуйста, а если я хочу именно дописать, то как могу я это сделать?
Наверное, через file_put_contents, но пока знаний не хватает )
Конечно же, и лучше и проще будет использование
file_put_contents .
Флаг
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 - 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 ExBB FM 1.0 RC1. InvisionExBB