Laravel4까지의 Blade에서 이스케이프하면서 데이터 표시는 파괄호 삼중 {{{}}}. PhpStorm에는 설정 다시 쓰기 필요
{{}}에서 모두 이스케이프되는 것은 5에서
오랜만에 Blade 템플릿을 재검토하고, 구문 등을 잊었으므로 공식적으로 확인했습니다.
Blade 템플릿 5.1 Laravel
참고 : 블레이드 {{}} 문은 자동으로 PHP의 htmlentities 함수를 통해 XSS 공격을 방지합니다.
유석에 템플릿 구문을 작성하는 방법은 그렇게 변하지 않을 것이라고 5 매뉴얼을 읽고 있으며, 그렇게 말하면 코드에
// e()はhtmlentities()のラッパー
{{ e('あぶないchara') }}
라고 하는 기술이 산견되고 있었던 것을 기억해, 그런가(안전 측에 쓰러뜨리고 있지만) 낭비였던가라고 제외해 가면
{{ 'またまたあぶないchara' }}
훌륭하게 표시가 무너졌다.
당황해 조사하면, 실장은 이렇게 되어 있었다.
class Blade {
/**
* Rewrites Blade echo statements into PHP echo statements.
*
* @param string $value
* @return string
*/
protected static function compile_echos($value)
{
$value = preg_replace('/\{\{\{(.+?)\}\}\}/', '<?php echo HTML::entities($1); ?>', $value);
return preg_replace('/\{\{(.+?)\}\}/', '<?php echo $1; ?>', $value);
}
}
확실히 보아, 정규 표현이 보기 힘들기 때문에, 제대로 이스케이프 하고 있다고 생각했지만, 2회 치환하고 있는 부자연스럽게 잘 보면 2중과 3중으로 처리가 나뉘어 있었다.
web에서도 조사 다시 5에서 바뀌었다는 것.
Laravel5(Blade)의 View에서 개행시키고 싶을 뿐인데 조금 고민했다 - Qiita
라라벨의 블레이드라는 녀석을 정리해 보았다.
(편리한 것 같아서 늘고 있다…)
직접적으로는 상관없지만, 5에서는 e()
에도 변경이 들어갔다
Laravel의 블레이드에서 {{과 }}로 둘러싸인 모든 것은 이스케이프 처리되지 않습니다.
제대로 지금 사용하고 있는 버전의 문서를, (찾는 것도 매우 힘들지만) 찾아 봅시다는 진정한 결론입니다.
PHPStorm은 블레이드 템플릿 지원
{{e()}}
와 {{{}}}
에서는 문자수로 하여 한 문자를 줄입니다.
모처럼 있는 기능을 사용하지 않는 것도 있고, 삼중으로 바꾸려고 했습니다.
맞습니다. 서포트한다면 5의 기법이군요.
하지만 일단 설정 화면에서 old version의 대응해주지 않았는지 보았습니다.
있었습니다.
그물에도있었습니다.
Laravel 4 Blade markup and Ide Helper in PhpStorm - Stack Overflow
내 버전이 오래되었거나 Content tags와 Escaped tags의 설명이 반대입니다 ...
Stack Overflow의 조합이 올바른 느낌이지만, 자신감이 없다…
Raw Tags는 불명.
버전에 차이가 있을지도 모르기 때문에, 일단 기존의 설정의 장소 그대로 낡은 기법으로 재기록합니다.
오류도 해결되었습니다.
Reference
이 문제에 관하여(Laravel4까지의 Blade에서 이스케이프하면서 데이터 표시는 파괄호 삼중 {{{}}}. PhpStorm에는 설정 다시 쓰기 필요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/khsk/items/133e4ce01e6a9a1917e6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// e()はhtmlentities()のラッパー
{{ e('あぶないchara') }}
{{ 'またまたあぶないchara' }}
class Blade {
/**
* Rewrites Blade echo statements into PHP echo statements.
*
* @param string $value
* @return string
*/
protected static function compile_echos($value)
{
$value = preg_replace('/\{\{\{(.+?)\}\}\}/', '<?php echo HTML::entities($1); ?>', $value);
return preg_replace('/\{\{(.+?)\}\}/', '<?php echo $1; ?>', $value);
}
}
{{e()}}
와 {{{}}}
에서는 문자수로 하여 한 문자를 줄입니다.모처럼 있는 기능을 사용하지 않는 것도 있고, 삼중으로 바꾸려고 했습니다.
맞습니다. 서포트한다면 5의 기법이군요.
하지만 일단 설정 화면에서 old version의 대응해주지 않았는지 보았습니다.
있었습니다.
그물에도있었습니다.
Laravel 4 Blade markup and Ide Helper in PhpStorm - Stack Overflow
내 버전이 오래되었거나 Content tags와 Escaped tags의 설명이 반대입니다 ...
Stack Overflow의 조합이 올바른 느낌이지만, 자신감이 없다…
Raw Tags는 불명.
버전에 차이가 있을지도 모르기 때문에, 일단 기존의 설정의 장소 그대로 낡은 기법으로 재기록합니다.
오류도 해결되었습니다.
Reference
이 문제에 관하여(Laravel4까지의 Blade에서 이스케이프하면서 데이터 표시는 파괄호 삼중 {{{}}}. PhpStorm에는 설정 다시 쓰기 필요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/khsk/items/133e4ce01e6a9a1917e6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)