PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 5
bogdan_titomir
Отправлено: 21 Октября, 2017 - 11:12:30 • Тема: Проблема с разбивкой папок: 10000 папок разбить на 100 папок • Форум: Вопросы новичков
Ответов: 1 Просмотров: 156
Изменил код но все равно в 1 папку свыше 1000 элементов идет что делать подскажите?
PHP:
скопировать код в буфер обмена
<?PHP
$host = '127.0.0.1' ;
$db = 'gigal' ;
$user = 'root' ;
$pass = '' ;
$charset = 'utf8' ;
$objectId = '' ;
$image = '' ;
$row = '' ;
$id = '' ;
$number_catalog = 1 ;
$dsn = "mysql:host=$host ;dbname=$db ;charset=$charset " ;
/*
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
*/ // TODO
$pdo = new PDO( $dsn , $user , $pass ) ;
$stmt = $pdo -> query ( 'SELECT * FROM id_images' ) ;
while ( $row = $stmt -> fetch ( PDO:: FETCH_LAZY ) )
{
$row_object = $row [ 'objectId' ] ;
$row_image = $row [ 'image' ] ;
$id_image = $row [ 'id' ] ;
$type_image = $row [ 'ext' ] ;
$count_dir = count ( glob ( "../uploads/image/{$number_catalog} /*.*" ) ) ;
if ( $count_dir < 100) {
$strukture = "../uploads/image/{$number_catalog} /" ;
$path = $strukture . $row_object ;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; } else if ( $count_dir > 100) {
$number_catalog = $number_catalog + 1 ;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; }
}
?>
(Добавление)
Всем спасибо! Справился сам кому интересно или у кого похожие проблемы выкладываю код.
PHP:
скопировать код в буфер обмена
<?PHP
$host = '127.0.0.1' ;
$db = 'gigal' ;
$user = 'root' ;
$pass = '' ;
$charset = 'utf8' ;
$objectId = '' ;
$image = '' ;
$row = '' ;
$id = '' ;
$number_catalog = 1 ;
$dsn = "mysql:host=$host ;dbname=$db ;charset=$charset " ;
/*
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
*/ // TODO
$pdo = new PDO( $dsn , $user , $pass ) ;
$stmt = $pdo -> query ( 'SELECT * FROM id_images' ) ;
while ( $row = $stmt -> fetch ( PDO:: FETCH_LAZY ) )
{
$row_object = $row [ 'objectId' ] ;
$row_image = $row [ 'image' ] ;
$id_image = $row [ 'id' ] ;
$type_image = $row [ 'ext' ] ;
$count_dir = count ( glob ( "../uploads/image/{$number_catalog} /*" ) ) ;
if ( $count_dir < 100) {
$strukture = "../uploads/image/{$number_catalog} /" ;
$path = $strukture . $row_object ;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; } else {
$number_catalog ++;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; }
}
?>
Единственный вопрос у меня картинки не открываются но понятно там ширины и высоты у них нет но в базе данных есть таблицы с шириной и высотой можно же при выводе передавать из таблицы в файл ширину и высоту и при выводе они будут работать?
bogdan_titomir
Отправлено: 21 Октября, 2017 - 08:38:19 • Тема: Проблема с разбивкой папок: 10000 папок разбить на 100 папок • Форум: Вопросы новичков
Ответов: 1 Просмотров: 156
Написал на pdo парсер теперь проблема с сортировкой так как в 1 папку залезает 10000 папок нужно разбить 100x100 папок.
PHP:
скопировать код в буфер обмена
<?PHP
$host = '127.0.0.1' ;
$db = 'gigal' ;
$user = 'root' ;
$pass = '' ;
$charset = 'utf8' ;
$objectId = '' ;
$image = '' ;
$row = '' ;
$id = '' ;
$dsn = "mysql:host=$host ;dbname=$db ;charset=$charset " ;
$opt = [
PDO:: ATTR_ERRMODE => PDO:: ERRMODE_EXCEPTION ,
PDO:: ATTR_DEFAULT_FETCH_MODE => PDO:: FETCH_ASSOC ,
PDO:: ATTR_EMULATE_PREPARES => false ,
] ;
$pdo = new PDO( $dsn , $user , $pass , $opt ) ;
$stmt = $pdo -> query ( 'SELECT * FROM id_images' ) ;
/* TODO
header("Content-Type: image/jpeg");
*/
$number_catalog = 1 ;
while ( $row = $stmt -> fetch ( PDO:: FETCH_LAZY ) )
{
$row_object = $row [ 'objectId' ] ;
$row_image = $row [ 'image' ] ;
$id_image = $row [ 'id' ] ;
$type_image = $row [ 'ext' ] ;
$count_dir = count ( glob ( "../uploads/image/{$number_catalog} /*.*" ) ) ;
if ( $count_dir = 0 || $count_dir = 100) {
$strukture = "../uploads/image/{$number_catalog} /" ;
$path = $strukture . $row_object ;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; } elseif ( $count_dir = 101) {
$number_catalog ++; // Понимаю что это бред но как увеличить переменную на единицу?
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; }
}
?>
Выручайте камрады, заранее Вам спасибо!
bogdan_titomir
Отправлено: 21 Октября, 2017 - 08:36:32 • Тема: Проблема с разбивкой папок: 10000 папок разбить на 100 папок • Форум: Вопросы новичков
Ответов: 0 Просмотров: 79
Написал на pdo парсер теперь проблема с сортировкой так как в 1 папку залезает 10000 папок нужно разбить 100x100 папок.
PHP:
скопировать код в буфер обмена
<?PHP
$host = '127.0.0.1' ;
$db = 'gigal' ;
$user = 'root' ;
$pass = '' ;
$charset = 'utf8' ;
$objectId = '' ;
$image = '' ;
$row = '' ;
$id = '' ;
$dsn = "mysql:host=$host ;dbname=$db ;charset=$charset " ;
$opt = [
PDO:: ATTR_ERRMODE => PDO:: ERRMODE_EXCEPTION ,
PDO:: ATTR_DEFAULT_FETCH_MODE => PDO:: FETCH_ASSOC ,
PDO:: ATTR_EMULATE_PREPARES => false ,
] ;
$pdo = new PDO( $dsn , $user , $pass , $opt ) ;
$stmt = $pdo -> query ( 'SELECT * FROM id_images' ) ;
/* TODO
header("Content-Type: image/jpeg");
*/
$number_catalog = 1 ;
while ( $row = $stmt -> fetch ( PDO:: FETCH_LAZY ) )
{
$row_object = $row [ 'objectId' ] ;
$row_image = $row [ 'image' ] ;
$id_image = $row [ 'id' ] ;
$type_image = $row [ 'ext' ] ;
$count_dir = count ( glob ( "../uploads/image/{$number_catalog} /*.*" ) ) ;
//Начало сортировки тут затык!
if ( $count_dir = 0 && count_dir = 100) {
$strukture = "../uploads/image/{$number_catalog} /" ;
$path = $strukture . $row_object ;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; } elseif ( $count_dir = 101) {
$number_catalog ++;
file_put_contents ( "../uploads/image/{$number_catalog} /{$row_object} /{$id_image} .{$type_image} " , $row_image ) ; }
}
?>
Выручайте камрады, заранее Вам спасибо!
bogdan_titomir
Отправлено: 09 Октября, 2017 - 13:21:11 • Тема: Можно ли создать парсер на PHP? • Форум: Программирование на PHP
Ответов: 1 Просмотров: 413
Можно ли создать парсер который вытащит строки из базы данных каждая строка BLOB их порядка 66000.
Причем 10000 объектов (компаний) у каждой компании есть (логотип, схема проезда, и карта сайта).
Получается надо создать 10000 папок и в каждой папке должны быть свои картинки схемы проезда и логотипы.
В базе данных все это прописано просто нагружает сильно серв и надо использовать это в файловой системе.
Написал код не судите строго только встал на этот путь. Заранее спасибо.
PHP:
скопировать код в буфер обмена
<?PHP
$serverMySQL = "localhost" ; // сервер MySQLi
$db = "mydb" ; // база данных
$dblog = "root" ; // логин
$dbpass = "" ; // пароль
$mi = new mysqli( $serverMySQL , $dblog , $dbpass , $db ) ;
$mi -> set_charset ( "utf8" ) ;
if ( $mi -> connect_errno ) :
endif ;
// Подключение к базе
$PublicationID ;
header ( 'Content-type: image/jpeg; charset=utf-8' ) ;
$SQLRequest = "SELECT image FROM id_images WHERE objectId=" . $PublicationID . "" ; // objectid id компании(объекта)
for ( $i = 0 ; $i < $rows ; $i ++ ) {
$SQLRequest = "SELECT image FROM id_images WHERE objectId=" . $PublicationID . "" ;
$strukture = "../gigal/templates/gigal/images/gallery/'.$PublicationID .'" ;
if ( mkdir ( $structure , 0777
, true ) ) { echo "Папка '.$PublicationID .' создана" ;
} else {
echo "Папка не создана" ;
}
}
// Отключение базы
?>
bogdan_titomir
Отправлено: 07 Октября, 2017 - 13:39:54 • Тема: Проблема с настройкой Xdebug + Netbeans • Форум: Программирование на PHP
Ответов: 0 Просмотров: 569
Версия php 5.5, apache 2.4, mysql 5.5
Локальный сервер: Openserver
Версия Netbeans 8,2.
Настройки Xdebug:
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.default_enable = 1
xdebug.auto_trace = 0
xdebug.collect_includes = 1
;xdebug.collect_params = 4
;xdebug.collect_return = 1
;xdebug.collect_assignments = 1
;xdebug.collect_vars = 1
xdebug.dump.REQUEST = *
xdebug.dump.SESSION = *
xdebug.dump.SERVER = REMOTE_ADDR,REQUEST_METHOD
;xdebug.dump.COOKIE =
;xdebug.dump.FILES =
;xdebug.dump.GET =
;xdebug.dump.POST =
xdebug.dump_globals = 1
xdebug.dump_once = 1
xdebug.dump_undefined = 1
xdebug.extended_info = 0
;xdebug.file_link_format = ""
xdebug.idekey = netbeans
;xdebug.manual_url = "http://www.php.net"
xdebug.max_nesting_level = 256
xdebug.overload_var_dump = 1
xdebug.profiler_append = 0
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "%sprogdir%/userdata/temp/xdebug/"
xdebug.profiler_output_name = "cachegrind.out.%H%R"
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = localhost
;xdebug.remote_log = "none"
xdebug.remote_mode = req
xdebug.remote_port = 9800
;xdebug.scream = 1
;xdebug.show_exception_trace = 0
xdebug.show_local_vars = 1
;xdebug.show_mem_delta = 1
;xdebug.trace_format = 1
;xdebug.trace_options = 1
xdebug.trace_output_dir = "%sprogdir%/userdata/temp/xdebug/"
;xdebug.trace_output_name = "trace.%H%R"
xdebug.var_display_max_children = 256
;xdebug.var_display_max_data = 1024
xdebug.var_display_max_depth = 6
В phpinfo() xdebug показывается со всеми настройками.
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader v4.7.2, Copyright (c) 2002-2014, by ionCube Ltd., and
with Xdebug v2.5.4, Copyright (c) 2002-2017, by Derick Rethans
Настройки netbeans:
Путь к интерпретатору.
D:\OpenServer\modules\php\PHP-5.5\php.exe
9800 порт, ключ netbeans, максимальная длина данных 2048.
Галки все снял во вкладке Отладка.
Проблема в том что при включении точек остановы и запуске выходит сообщение ожидание подключения(netbeans) и все.
Выручайте камрады, заранее спасибо!
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB