resizeImageは高品質なリサイズが必要な場合に適しており、thumbnailImageは小さなサムネイルを素早く生成するのに適しています。
resizeImage with EXIF removal
$image = new Imagick('path/to/image.jpg');
$image->resizeImage($width, 0, Imagick::FILTER_LANCZOS, 1, true); // 幅を指定し、高さは自動計算
$image->stripImage(); // EXIF情報を削除
$image->writeImage('path/to/resized_image.jpg');
thumbnailImage with EXIF removal
$image = new Imagick('path/to/image.jpg');
$image->thumbnailImage($width, 0, true); // 幅を指定し、高さは自動計算
$image->writeImage('path/to/thumbnail_image.jpg');
片方のサイズを0に設定することで、縦横比を維持しながらリサイズすることができます。
thumbnailImageは、関連付けられたプロパティをすべて削除します。
<?php
function replaceSpaces($input) {
return preg_replace_callback('/ {2,}/', function($matches) {
return str_repeat(' ', strlen($matches[0]));
}, $input);
}
$input = "これは テスト です。";
$output = replaceSpaces($input);
echo $output;
?>
function generateRandomString($length, $characters = 'abcdefghijklmnopqrstuvwxyz') {
$randomString = '';
$charactersLength = strlen($characters);
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
// 使用例
$length = 10; // 文字数を指定
$randomString = generateRandomString($length);
echo $randomString;
ディレクトリを作成するためには、親ディレクトリに書き込み権限が必要です。例えば、mkdir()関数を使用する場合、指定したパスの親ディレクトリに書き込み権限がないとエラーが発生します。
mkdir()関数は成功時にtrueを返し、失敗時にfalseを返します。
$parentDir = 'path/to/parent/directory';
$newDir = $parentDir . '/new_directory';
if (is_writable($parentDir)) {
if (!file_exists($newDir)) {
if (mkdir($newDir, 0777, true)) {
echo 'ディレクトリが作成されました';
} else {
echo 'ディレクトリの作成に失敗しました';
}
} else {
echo 'ディレクトリは既に存在します';
}
} else {
echo '親ディレクトリに書き込み権限がありません';
// エラーログを記録する
error_log('親ディレクトリに書き込み権限がありません: ' . $parentDir);
}
mkdir()関数の第三引数にtrueを指定することで、再帰的に親ディレクトリも含めて作成することができます。つまり、指定したパスの途中に存在しないディレクトリがあった場合でも、それらのディレクトリを自動的に作成してくれます。
umaskの影響でmkdirで指定したパーミッションにならないことがある:
umaskは新しく作成されるファイルやディレクトリのデフォルトのパーミッションを制限するための設定です。例えば、umaskが0022に設定されている場合、0777でディレクトリを作成しても実際には0755になります。mkdirでディレクトリを作成し、その後にchmodでパーミッションを設定して希望のパーミッションにする。
$dir = 'path/to/directory';
if (is_readable($dir) && is_writable($dir) && is_executable($dir)) {
echo '読み込み、書き込み、実行のすべての権限があります';
} else {
echo '必要な権限がありません';
}
file_put_contents 関数は、書き込みが成功した場合には書き込まれたバイト数を返し、失敗した場合には false を返します。
$result = file_put_contents('/path/to/directory/file.txt', 'Hello, World!');
if ($result === false) {
echo 'ファイルの作成に失敗しました。';
} else {
echo '書き込まれたバイト数: ' . $result;
}
<?php
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
$backupFile = 'path_to_your_backup_file.sql';
// データベース接続
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// SQLファイルを読み込む
$sql = file_get_contents($backupFile);
// SQLクエリを実行
$conn->exec($sql);
echo "Import completed.";
?>
<?php
$host = 'localhost';
$dbname = 'your_database';
$username = 'your_username';
$password = 'your_password';
// データベース接続
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// テーブル名を取得
$tables = $conn->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
$backupFile = 'backup_' . date('Ymd_His') . '.sql';
$handle = fopen($backupFile, 'w');
foreach ($tables as $table) {
// テーブルの作成文を取得
$createTableStmt = $conn->query("SHOW CREATE TABLE $table")->fetch(PDO::FETCH_ASSOC);
fwrite($handle, $createTableStmt['Create Table'] . ";\n\n");
// テーブルのデータを取得
$rows = $conn->query("SELECT * FROM $table")->fetchAll(PDO::FETCH_ASSOC);
foreach ($rows as $row) {
$values = array_map([$conn, 'quote'], array_values($row));
fwrite($handle, "INSERT INTO $table VALUES (" . implode(', ', $values) . ");\n");
}
fwrite($handle, "\n\n");
}
fclose($handle);
echo "Backup completed: $backupFile";
?>
<?php
$image = new Imagick('input.jpg'); // 入力画像ファイル
$image->setImageFormat('webp'); // 出力形式をwebpに設定
$image->setImageCompressionQuality(80); // 画像の品質を設定(0-100の範囲、高いほど品質が良い)
$image->writeImage('output.webp'); // 出力ファイル名
?>
if (extension_loaded('imagick')) {
echo 'Imagickを使用します。';
} elseif (extension_loaded('gd')) {
echo 'GDを使用します。';
} else {
echo 'ImagickもGDも利用できません。';
}