public function parseBlade($string, $param = null)
{
app(\Illuminate\Contracts\View\Factory::class)
->share('errors', app(\Illuminate\Support\MessageBag::class));
extract(app('view')->getShared(), EXTR_SKIP);
$__env->incrementRender();
if ($param) {
extract($param, EXTR_SKIP);
}
unset($param);
ob_start();
eval('?>' . app('blade.compiler')->compileString($string));
$content = ltrim(ob_get_clean());
$__env->decrementRender();
$__env->flushStateIfDoneRendering();
return $content;
}
$text = $template->content;
$data = array(
'token'=>$param['temporaryOrder']['token'],
'user'=>$param['isUseImei']);
$url = http_build_query($data,'','&');
$obj->setViewData([
'text' => $this->parseBlade($text,
[
'email' => $email,
'link' => config('frontend.ec_protocol') . $office->subdomain . config('frontend.ec_url') . '/order/registration?'. $url
]),
]);
После вызова ob_get_clean()
он меняет &
в ссылке на &
. Есть ли способ решить эту проблему?
Можете ли вы предоставить минимальный воспроизводимый пример, включив строку с образцом содержимого, а затем показать нам, какой результат вы получаете, а затем показать нам, какой именно результат вы ожидаете? Я бы, наверное, переименовал $url
в $querystring
для ясности кода.
я просто хочу конвертировать & в & в примере ссылки: token=uxsrL03fSgXB4iVORdyIq97DhpeZbFaC61kKYnvoAHt5T8PwN2WUjElmzJcQMG&user=1 to : token=uxsrL03fSgXB4iVORdyIq97DhpeZbFaC61kKYnvoAHt5T8PwN1WUjj
Я знаю, что вы спрашиваете, это просто, но если у Stack Overflow есть надежда получить правильные и информативные ответы, которые можно проверить как правильные, необходим минимальный воспроизводимый пример. Когда у вас будет эта информация, редактировать ваш вопрос; никогда не публикуйте детали вопроса в качестве комментария. Возможно, это проблема XY. Вы пытаетесь починить то, что не сломано? stackoverflow.com/a/62055171/2943403
Я просто новичок, и мой английский тоже не очень хорош. прости меня за это.
Они выглядят связанными: Laravel getQueryString() без &, laracasts.com/discuss/channels/laravel/…,
$test = '&';
echo htmlspecialchars(htmlspecialchars($test));
В этом ответе отсутствует образовательное объяснение. Почему спрашивающий (и будущие исследователи) должен дважды вызывать одну и ту же функцию для входной строки?
@micmackusa, честно говоря, я понятия не имею, почему вы должны звонить дважды. Я просто знаю, что это работает;) Мне интересно услышать ваше объяснение :)
@Niels благодаря тебе я нашел решение! Я ищу htmlspecialchars_decode()
На данный момент, @Niels, мое объяснение состоит в том, что спрашивающий пытается исправить то, что не сломано. Смотрите мою прокомментированную ссылку под вопросом на один из моих старых ответов.
Я не Laravel, но он автоматически кодирует содержимое, передаваемое в представление, чтобы оно отображалось правильно?