connect_error) { die("Connection failed: " . $mysqli->connect_error); } $mysqli->set_charset("utf8"); echo "=== Анализ проекта 394492 (PDFmaker проблемы) ===\n\n"; // 1. Ищем файлы, связанные с проектом 394492 echo "1. Поиск файлов проекта 394492...\n"; $query = "SELECT n.notesid, n.title, n.filename, n.filetype, n.filesize, n.s3_key, n.s3_bucket FROM vtiger_notes n LEFT JOIN vtiger_senotesrel snr ON n.notesid = snr.notesid LEFT JOIN vtiger_crmentity ce ON snr.crmid = ce.crmid WHERE ce.deleted = 0 AND (n.filename LIKE '%394492%' OR ce.crmid = 394492) AND n.filelocationtype = 'E' ORDER BY n.notesid DESC"; $result = $mysqli->query($query); if ($result && $result->num_rows > 0) { echo "Найдено файлов: " . $result->num_rows . "\n\n"; $broken_files = []; $total_files = 0; while ($row = $result->fetch_assoc()) { $total_files++; echo "Файл ID: " . $row['notesid'] . "\n"; echo "Название: " . $row['title'] . "\n"; echo "URL: " . substr($row['filename'], 0, 100) . "...\n"; echo "Тип: " . $row['filetype'] . "\n"; echo "Размер: " . $row['filesize'] . " байт\n"; echo "S3 Key: " . ($row['s3_key'] ?: 'NULL') . "\n"; echo "S3 Bucket: " . ($row['s3_bucket'] ?: 'NULL') . "\n"; // Проверяем доступность файла if (!empty($row['filename']) && strpos($row['filename'], 'https://s3.twcstorage.ru') !== false) { $headers = @get_headers($row['filename'], 1); if ($headers && strpos($headers[0], '200') !== false) { echo "✅ Файл доступен\n"; } else { echo "❌ Файл недоступен (битая ссылка)\n"; $broken_files[] = $row; // Определяем тип проблемы if (strpos($row['filename'], '#realfile') !== false) { echo "Проблема: #realfile в URL\n"; } elseif (strpos($row['filename'], '%D0%B') !== false) { echo "Проблема: Обрезанная ссылка\n"; } elseif (preg_match('/[А-Яа-я]/', $row['filename']) && strpos($row['filename'], '%') === false) { echo "Проблема: Русские символы без кодировки\n"; } elseif (strpos($row['filename'], 'PDFmaker') !== false || strpos($row['title'], 'PDFmaker') !== false) { echo "Проблема: PDFmaker ошибка\n"; } else { echo "Проблема: Неправильная кодировка URL\n"; } } } else { echo "⚠️ Нестандартный URL\n"; } echo "---\n"; } echo "\n=== СТАТИСТИКА ===\n"; echo "Всего файлов: $total_files\n"; echo "Битых ссылок: " . count($broken_files) . "\n"; if (!empty($broken_files)) { echo "\n=== БИТЫЕ ФАЙЛЫ ===\n"; foreach ($broken_files as $file) { echo "ID: " . $file['notesid'] . " - " . $file['title'] . "\n"; echo "URL: " . substr($file['filename'], 0, 80) . "...\n"; echo "S3 Key: " . ($file['s3_key'] ?: 'NULL') . "\n\n"; } // Сохраняем список битых файлов для исправления $broken_file_ids = array_column($broken_files, 'notesid'); echo "=== СПИСОК ID ДЛЯ ИСПРАВЛЕНИЯ ===\n"; echo "ID файлов: " . implode(', ', $broken_file_ids) . "\n"; } } else { echo "Файлы проекта 394492 не найдены.\n"; // Попробуем найти файлы с PDFmaker в названии или содержании echo "\n2. Поиск файлов с PDFmaker...\n"; $pdfmaker_query = "SELECT notesid, title, filename, s3_key, s3_bucket FROM vtiger_notes WHERE (title LIKE '%PDFmaker%' OR filename LIKE '%PDFmaker%') AND filelocationtype = 'E' ORDER BY notesid DESC LIMIT 10"; $pdfmaker_result = $mysqli->query($pdfmaker_query); if ($pdfmaker_result && $pdfmaker_result->num_rows > 0) { echo "Найдено файлов с PDFmaker: " . $pdfmaker_result->num_rows . "\n"; while ($row = $pdfmaker_result->fetch_assoc()) { echo "ID: " . $row['notesid'] . " - " . $row['title'] . "\n"; echo "URL: " . substr($row['filename'], 0, 80) . "...\n"; echo "---\n"; } } else { echo "Файлов с PDFmaker не найдено.\n"; } } $mysqli->close(); echo "\n=== Проверка завершена ===\n"; ?>