質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5622閲覧

PHPで変数内に改行コードを入れたい

clovismoment

総合スコア15

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

2クリップ

投稿2019/04/02 12:40

編集2019/04/02 12:54

前提・実現したいこと

(例)PHP(Laravel)で勤怠管理システムを作っています。
表示したい文字列を変数に入れ込んでいるとき以下のような状況に陥りました。

発生している問題・エラーメッセージ

・文字列を改行することができない。

該当のソースコード

\nが入っているところが改行したいポイントです。

php(Laravel)

1 $displayText = link_to(route('admin.projects.show', ['id' => $project->getId(), 'pdate' => $schedule->format('Ymd')]), "{$label} \n {$from}{$to}" ); 2

試したこと

"{$label} \n {$from}~{$to}"
"{$label} \r {$from}~{$to}"
"{$label} <br> {$from}~{$to}"
"{$label} <br/> {$from}~{$to}"
"{$label} PHP_EOL {$from}~{$to}"
nl2br( "e({$label}) \n e({$from}~{$to}"))

\n , \r , <br> , <br/> , PHP_EOL , nl2br
を挿入してみましたが、変わらず。

補足情報(FW/ツールのバージョンなど)

PHPは7.1.27、Laravelは5.6.39、MariaDBを使用しています。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/04/02 12:47

>\n , \r , <br> , <br/> , PHP_EOL , nl2br それぞれの具体的なコードを記載してください。 また >PHPは7系、Laravelは5系 ここは「系」と省略せずマイナーバージョンも含めて記載してください。 特にLaravel5は途中からPHP7.0以上、最新では7.1以上が環境要件になってガラッと変わります。
clovismoment

2019/04/02 12:54

修正致しました。 宜しくお願い申し上げます。
guest

回答1

0

ベストアンサー

link_to()だとリンク文字列がHTMLエスケープかかっているのではないでしょうか。
ちょっと手元にすぐLaravel動かせる環境がないので、動作確認していませんが、nl2br()の場所は一番外にしてみては?

php

1 2$displayText = nl2br(link_to(route('admin.projects.show', ['id' => $project->getId(), 'pdate' => $schedule->format('Ymd')]), "{$label}\n{$from}{$to}" )); 3

ちなみに、PHP_EOL は改行コード(OSに依存しない)の定数なので、扱いは変数と同じです。
"PHP_EOL"としてしまうと改行コードではなく'PHP_EOL'という文字列しか出ません。

php

1 2$displayText = nl2br(link_to(route('admin.projects.show', ['id' => $project->getId(), 'pdate' => $schedule->format('Ymd')]), "{$label}".PHP_EOL."{$from}{$to}" )); 3

投稿2019/04/02 13:07

編集2019/04/05 01:22
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

clovismoment

2019/04/02 13:21

ありがとうございます! 無事HTMLごと文字列の形で出力されました。 ここから正規のエスケープを掛けなければならないと思うのですが よろしければそちらについてもご教示いただけますでしょうか・・・。
m.ts10806

2019/04/02 13:22

「正規のエスケープ」とは何でしょうか。 どういうものにたいしてどういう結果を求めていますか?
clovismoment

2019/04/03 12:06

ご連絡ありがとうございます。 勘違いしておりまして 無事解決できました! ベストアンサーとさせていただきます。 この度はわかりやすいアドバイスをいただきまして 誠にありがとうございます!
m.ts10806

2019/04/03 12:08

どのように勘違いしてたか教えてもらえますか?
m.ts10806

2019/04/05 01:22

>低評価された方 回答のどの部分で低評価だと感じたのかコメントください。回答調整します。
clovismoment

2019/04/05 02:35

>回答者様 ご連絡おそくなりもうしわけありません。 勘違いした点としては <a href~~~~~とHTMLがそのまま展開されてしまったので 文字列として認識されてるな、と思いました。 変数を代入するときでなく、出力するときでも同じだと思いまして {{!! nl2br($displayText) !!} としたら思い通りに出力できました。
m.ts10806

2019/04/05 02:47

了解です。解決されたようで何よりです。 複数の処理を1つにまとめる場合は「一番内側から実行される」ことを意識する必要があります。 ここ結構ややこしくなるので、1行ずつに小分けに書いて1個ずつ格納されている情報を確認しつつ実行していくのが確実です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問