Здравствуйте, я хочу добавить php-код в свое приложение laravel.
отсюда: http://php.net/manual/de/function.iptcembed.php
я пытался сделать это в своем контроллере следующим образом:
<?php
function iptc($rec, $data, $value)
{
$length = strlen($value);
$retval = chr(0x1C) . chr($rec) . chr($data);
if ($length < 0x8000)
{
$retval .= chr($length >> 8) . chr($length & 0xFF);
}
else
{
$retval .= chr(0x80) .
chr(0x04) .
chr(($length >> 24) & 0xFF) .
chr(($length >> 16) & 0xFF) .
chr(($length >> 8) & 0xFF) .
chr($length & 0xFF);
}
return $retval . $value;
}
// Path to jpeg file
$path = 'public\images\test.jpg';
// Set the IPTC tags
$iptc = array(
'2#120' => 'Test image',
'2#116' => 'Copyright 2008-2009, The PHP Group'
);
// Convert the IPTC tags into binary code
$data = '';
foreach($iptc as $tag => $string)
{
$tag = substr($tag, 2);
$data .= iptc_make_tag(2, $tag, $string);
}
// Embed the IPTC data
$content = iptcembed($data, $path);
// Write the new image data out to the file.
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>
Note
и я хочу вызвать функцию в своих маршрутах:
Route::get('/iptc', 'MetaController@iptc');
но теперь он показывает мне эту ошибку:
Слишком мало аргументов для функции App\Http\Controllers\MetaController::iptc(), передано 0 и ожидается ровно 3
кто-нибудь знает, в чем проблема?
Хотя я могу написать обычный php в laravel?
Но что я не так?
Спасибо за помощь!! :)
если я передам такие параметры: Route::get('/iptc/{rec}/{data}/{value}', 'MetaController@iptc'); он показывает мне страницу 404? так как я могу пройти их?
Какой URL-адрес вы пытаетесь использовать для доступа к этой странице?






ответ был там на самом деле
Too few arguments to function App\Http\Controllers\MetaController::iptc(), 0 passed and exactly 3 expected
функция @iptc ожидала 3 параметра, а вы передаете 0 параметров
поэтому в ваших маршрутах вам нужно перейти на
Route::get('/iptc/{rec}/{data}/{value}', 'MetaController@iptc');
а затем в поле URL вам нужно только назвать его как
urlpath/iptc/foo/bar/doe
поэтому контроллер распознает его как
$рек = фу,
$данные = бар,
$ значение = лань
Вы показали функцию
iptc_make_tag, которая принимает три параметра. Вы не показали нам свою функциюiptc, но, видимо, она тоже хочет три параметра. Если вы просто используете/iptcдля своего URL-адреса, то передается нулевой параметр.