我有以下脚本:
<?php
/* include database informations */
include 'config.php';
/* MySQLi Connection */
$mysqli = new mysqli($host, $user, $pass, $db);
/* MySQLi Check */
if ($mysqli->connect_errno) { printf('Connect Failed: %s\n', $mysqli->connect_error); exit(); }
/* MySQLi Character */
$mysqli->set_charset('utf8');
libxml_use_internal_errors(true);
/* Cinestar VZ */
$rss = simplexml_load_file('http://www.blitz-cinestar.hr/rss.aspx?id=2128');
/* Cinestar items */
foreach($rss->channel->item as $item) {
/* Cinestar Poster Character */
$item->orignaziv = str_replace('’', '', mb_convert_encoding($item->orignaziv, 'HTML-ENTITIES', "UTF-8"));
$item->orignaziv = str_replace(': ', ' -', mb_convert_encoding($item->orignaziv, 'HTML-ENTITIES', "UTF-8"));
/* Cinestar Poster */
if (!file_exists('./img/'.$item->orignaziv.' ('.$item->godina.').jpg')) {
$remote_file = $item->plakat;
$new_width = 117;
$new_height = 168;
list($width, $height) = getimagesize($remote_file);
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($remote_file);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($image_p, './img/'.ucfirst($item->orignaziv).' ('.$item->godina.').jpg', 100);
imagedestroy($image_p);
}
/* MySQLi update|insert */
$cinestar = $mysqli->query("INSERT INTO cinestar (title, orignaziv, godina, redatelj, zanr, glumci, trajanje, rating, description, link, datumprikazivanja, trailer)
VALUES ('$item->title', '$item->orignaziv', '$item->godina', '$item->redatelj', '".ucfirst($item->zanr)."', '$item->glumci', '$item->trajanje', '$item->rating', '".strip_tags(substr($item->description, 0, strpos($item->description, '<a href')))."', '$item->link', '$item->datumprikazivanja', '".$item->trailer."')
ON DUPLICATE KEY UPDATE title='$item->title', godina='$item->godina', redatelj='$item->redatelj', zanr='".ucfirst($item->zanr)."', glumci='$item->glumci', trajanje='$item->trajanje', rating='$item->rating', description='".strip_tags(substr($item->description, 0, strpos($item->description, '<a href')))."', link='$item->link', datumprikazivanja='$item->datumprikazivanja', trailer='".$item->trailer."'");
}
/* MySQLi Close */
$mysqli->close();
?>
请忽略MySQL的东西(它是整个脚本)并专注于从url读取图像的PHP代码调整大小并保存到img文件夹...运行脚本时出现此错误:
( ! ) Warning: imagejpeg(./img/Loving Vincent (2017).jpg): failed to open stream: Invalid argument in D:\portal_ONLINE\UwAmp\www\filmovi_novi\inc\cinestar-rss.php on line 35
xml在url:
http://www.blitz-cinestar.hr/rss.aspx?id=2128
我无法理解为什么它不起作用...我尝试手动将vincent(2017).jpg复制到img文件夹但我总是得到这个错误...所以一些帮助或提示将是受欢迎的...谢谢
答案 0 :(得分:0)
根据您的错误,您似乎正在尝试使用空格和特殊字符构造文件名,这些字符未正确转义。
这导致imagejpeg
无法打开流,因为提供的文件名格式无效。
因此无效参数警告。
尝试转义空格和大括号,使其正常工作。
构造文件名的外观示例
Loving\ Vincent\ \ \ \(2017\).jpg
或者,你可以去掉空格和大括号。