পিএইচপি-তে মাল্টি-লাইন স্ট্রিং


141

বিবেচনা:

$xml = "l";
$xml = "vv";

echo $xml;

এটি ভিভির প্রতিধ্বনি করবে । সিম্পলএক্সএমএল ইত্যাদির জন্য কেন এবং কীভাবে আমি বহু-লাইন স্ট্রিংগুলি করতে পারি ?


1
আপনি কি এটি পরের লাইনে "ভিভি" এর পরে "এল" প্রতিধ্বনি করতে চান?
মাইক স্যামুয়েল

3
তাকান concatenation। আপনি যখন একসাথে স্ট্রিং রাখেন তখন এটাকেই বলা হয়।
ক্রাশস্পিডার

14
@ হাইওয়াইর গুগলে প্রথম এবং সহায়ক ফলাফল হয়ে।
সিইস টিমারম্যান

উত্তর:


262

আমরা হব,

$xml = "l
vv";

কাজ করে।

আপনি নিম্নলিখিত ব্যবহার করতে পারেন:

$xml = "l\nvv";

অথবা

$xml = <<<XML
l
vv
XML;

মন্তব্যের ভিত্তিতে সম্পাদনা করুন:

আপনি .=অপারেটরটি ব্যবহার করে স্ট্রিংগুলি সংযুক্ত করতে পারেন ।

$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";

5
লুপগুলির মধ্যে যখন আমার কাছে লুপ বা মাইএসকিউএল থাকে তবে আপনি ভুলে গিয়েছিলেন। ধন্যবাদ
TheBlackBenzKid

89
@ দ্য ব্ল্যাকবেঞ্জকিড: উম্মম ... কি?
মাদারার ঘোস্ট

1
উদাহরণ। যখন ($ আরসি = mysql_fetch_array (view adviews)) {$ xML। = "<নাম নাম = '"। c আরসি ["তারিখ"]। "' মান = '1' হোভারটেক্সট = '"। c আরসি ["তারিখ" ] " '/>"। ; $ xML। = "<< অনুচ্ছেদ";
দ্য

3
@ পেসারিয়র আপনার কোনও বংশের অভ্যন্তরের উদ্ধৃতিগুলি রক্ষা করার দরকার নেই।
মাদারার ঘোস্ট

7
@ পেসারিয়র আপনি জিজ্ঞাসা করেছিলেন কেন আমাদের উদ্ধৃতিতে হেরেডোক নিয়ে বিরক্ত করা দরকার। এই জন্য. উভয়ই মাল্টলাইন স্ট্রিংয়ের বিকল্প।
মাদারার ঘোস্ট

139

পিএইচপি-তে হেরেডোক এবং নওডোক স্ট্রিং রয়েছে, যা পিএইচপি-তে মাল্টলাইন স্ট্রিংগুলি হ্যান্ডেল করার সর্বোত্তম উপায়।

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
$var is replaced automatically.
EOD;

একটি নওডোক হেরাদোকের মতো তবে এটি ভেরিয়েবলগুলি প্রতিস্থাপন করে না।

$str = <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
$var is NOT replaced in a nowdoc.
EOD;

সাবধানতা অবলম্বন করুন যে শেষ টোকেনটি একেবারে EODইন্টেন্ট করা উচিত নয়, বা পিএইচপি এটি স্বীকার করবে না। এছাড়াও, আপনাকে " EOD" ব্যবহার করতে হবে না ; এটি আপনি চান যে কোনও স্ট্রিং হতে পারে।


8
উত্সাহিত কারণ আমি সবসময় ইন্ডেন্টেশনটি ভুলে যাই।
ম্যাটুসেক

8
$xml="l" . PHP_EOL;
$xml.="vv";
echo $xml;

প্রতিধ্বনিত হবে:

l
vv

পিএইচপি_ইএল- তে ডকুমেন্টেশন ।


পছন্দ করেছে। @Pacerier
TheBlackBenzKid

উত্তর চিহ্নিত করার উপায় আছে কি? আমি সবসময় ভেবেছি আপনি কেবল প্রশ্নগুলির উপর এটি করতে পারেন। @
দ্য

আমি বোঝাতে চাইছি আমি তাকে আরও বাড়িয়ে দেওয়ার সাথে সাথে তাকে আরও +1 দিয়েছি।
দ্য ব্ল্যাকবেঞ্জকিড

@ দ্য ব্ল্যাকবেঞ্জকিড "ফ্যাভড";)
অ্যান্ড্রেস

8

এটি পারফরম্যান্সের ভিত্তিতে কীভাবে স্ট্যাক করে তা নিশ্চিত নয়, তবে যে জায়গাগুলিতে এটি সত্যিকার অর্থে গুরুত্বপূর্ণ নয়, আমি এই ফর্ম্যাটটি পছন্দ করি কারণ আমি নিশ্চিত হতে পারি যে এটি \ r (n (সিআরএলএফ) ব্যবহার করছে এবং আমার পিএইচপি ফাইলটি যে ফর্ম্যাট হতে পারে তা নয় not মধ্যে সংরক্ষিত

$text="line1\r\n" .
      "line2\r\n" .
      "line3\r\n";

এটি আমাকে চাইলেও ইনডেন্ট করতে দেয়।


5

আর একটি সমাধান হ'ল আউটপুট বাফারিং ব্যবহার করা , আপনি আউটপুট / প্রতিধ্বনিত হওয়া সমস্ত কিছু সংগ্রহ করতে পারেন এবং এটিকে ভেরিয়েবলের মধ্যে সঞ্চয় করতে পারেন।

<?php
ob_start(); 

?>line1
line2
line3<?php 

$xml = ob_get_clean();

দয়া করে নোট করুন যে আউটপুট বাফারিং এই সঠিক ক্ষেত্রেটির জন্য পারফরম্যান্স এবং কোড পরিষ্কারের ক্ষেত্রে সেরা সমাধান নাও হতে পারে তবে এটি এখানে রেফারেন্সের জন্য রেখে দেওয়া উপযুক্ত worth


2

হতে পারে "। =" অনাবৃত "=" চেষ্টা করে দেখুন?

$xml="l";
$xml.="vv";

আপনাকে "lvv" দেবে;


1
তিনি কি ডাইন অপারেটিং সিস্টেম ব্যবহার করছেন বলেছিলেন? অ্যানসওয়ার পুরোপুরি প্রশ্ন হিসাবে রয়েছে;)
নরবার্ট অরচোইচিজ

তবে, এটি হিসাবে অনুরোধ হিসাবে বহু-লাইন স্ট্রিং ফলাফল না ।
নির্মাতা স্টিভ


0

একা কোডে পৃথক লাইনে "l" এবং "vv" স্ট্রিংগুলি রাখতে:

$xml = "l";
$xml .= "vv"
echo $xml;

এই উদাহরণে আপনি বলছেন .=যে স্ট্রিং ভেরিয়েবলের পূর্ববর্তী সংস্করণটির শেষে স্ট্রিং যুক্ত করুন। মনে রাখবেন যে = কেবল একটি অ্যাসাইনমেন্ট অপারেটর তাই আপনার আসল কোডে আপনি ভেরিয়েবলটিকে একটি নতুন স্ট্রিংয়ের মান নির্ধারণ করছেন।

প্রতিধ্বনিতে পৃথক রেখায় "l" এবং "vv" স্ট্রিংগুলি রাখার জন্য:

$xml = "l\nvv"
echo $xml;

এই উদাহরণে আপনার একাধিক স্ট্রিংয়ের দরকার নেই, কারণ নতুন রেখার চরিত্রটি আপনার \nএটির যত্ন নেবে।

কোডগুলিতে এবং প্রতিধ্বনিত হওয়ার পরে পৃথক রেখায় "l" এবং "vv" স্ট্রিংগুলি রাখতে:

$xml = "l";
$xml .= "\nvv"
echo $xml;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.