Как я могу написать пустой php в laravel?

Здравствуйте, я хочу добавить 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?

Но что я не так?

Спасибо за помощь!! :)

Вы показали функцию iptc_make_tag, которая принимает три параметра. Вы не показали нам свою функцию iptc, но, видимо, она тоже хочет три параметра. Если вы просто используете /iptc для своего URL-адреса, то передается нулевой параметр.

Greg Schmidt 09.02.2019 23:09

если я передам такие параметры: Route::get('/iptc/{rec}/{data}/{value}', 'MetaController@iptc'); он показывает мне страницу 404? так как я могу пройти их?

MonaMuhr 09.02.2019 23:14

Какой URL-адрес вы пытаетесь использовать для доступа к этой странице?

Greg Schmidt 10.02.2019 00:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ответ был там на самом деле

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

поэтому контроллер распознает его как

$рек = фу,

$данные = бар,

$ значение = лань

Другие вопросы по теме