একক উদ্ধৃতিতে পিএইচপিতে নিউলাইন মুদ্রণ করুন


125

আমি যথাসম্ভব একক উদ্ধৃতি ব্যবহার করার চেষ্টা করেছি এবং আমি লক্ষ্য করেছি যে আমি একক উদ্ধৃতিতে \ n ব্যবহার করতে পারি না। আমি জানি আমি রিটার্ন টিপে অক্ষরে অক্ষরে একটি নতুন লাইন প্রবেশ করতে পারি, তবে এটি আমার কোডের ইন্ডেন্টেশনটিকে স্ক্রু করে দেয়।

আমি যখন একক উদ্ধৃতি ব্যবহার করছি তখন এমন কিছু ASCII চরিত্র বা আমি টাইপ করতে পারি যা নিউলাইন তৈরি করবে?


যদি কেউ এমন কোনও সমাধানে আগ্রহী যা ব্রাউজার এবং টার্মিনাল উভয়ের জন্য কাজ করে (ক্লিপ, কমান্ড লাইন): stackoverflow.com/a/9665253/1923625
ওমর তারিক

সেখানে সত্যই সব সময়ে কোন কারণ একক উদ্ধৃতি চাইতে এর সব খরচ এ । উভয় বাক্য গঠন একটি কারণ হিসাবে কাজ করে। আপনি যদি ইন্টারপোলটেড ভেরিয়েবলগুলি বা পালানো সিকোয়েন্সগুলি চান তবে আপনার ডাবল উদ্ধৃতিগুলি ইচ্ছাকৃতভাবে ব্যবহার করার কথা । অনুসরণ করার একটি ভাল নিয়ম: সর্বদা একক উদ্ধৃতি ব্যবহার করুন, যদি না আপনি কোনও ভাল কারণে ডাবল উদ্ধৃতি চান । এটা আমার বন্ধুদের ধারাবাহিকতা।
ভিক্টর শ্রড্ডার

উত্তর:


142

না, কারণ একক উদ্ধৃতি এমনকি হেক্স কোড প্রতিস্থাপনকে বাধা দেয়।

echo 'Hello, world!' . "\xA";

1
আহ ঠিক আছে .. আমি আশা করছিলাম যে আমাকে এর অবলম্বন করতে হবে না .. ধন্যবাদ!
ম্যাট

জী জনাব. তিনি 10 মিনিটের নিচে এটির উত্তর দিয়েছিলেন। আমাকে গ্রহণ করার জন্য ততক্ষণ অপেক্ষা করতে হয়েছিল, তবে আমি এটি সম্পর্কে ভুলে গিয়েছিলাম হা হা।
ম্যাট

1
এর কোন বিকল্প আছে কি? আমাকে এটি এমন একটি পূর্বরূপে ব্যবহার করতে হবে যাতে আমি ডাবল উদ্ধৃতি ব্যবহার করতে পারি না
অ্যালেক্স হ্যাডলি

1
এটি সঠিক যুক্তি নয়। এটি কোনও কারণ নয় যে পিএইচপি-তে আপনি একক উদ্ধৃতিতে একটি নতুন-লাইন চরিত্রটি প্রকাশ করতে পারবেন না। এবং এটাই. ম্যানুয়ালটি পড়তে সাহায্য করতে পারে :)
হ্যাক্রে

3
@ হ্যাক্রে অবশ্যই, ম্যানুয়ালটি পড়তে সাহায্য করতে পারে তবে কৃতজ্ঞ, স্ট্যাকওভারফ্লো সুবিধামত এই উত্তরগুলি সন্ধানের জন্য জায়গা;)
ফ্রেডেরিক ক্রাউটওয়াল্ড

108
echo 'hollow world' . PHP_EOL;

ধ্রুবক PHP_EOL ব্যবহার করুন তবে এটি ওএসও স্বতন্ত্র।


4
আপনার সাধারণত PHP_EOL ব্যবহার করা উচিত নয় কারণ এটি আপনার কোডটি যে সিস্টেমটি চলছে তার উপর নির্ভর করে। যেমন আপনার লিনাক্স সার্ভারটি অন্য সার্ভারের সাথে যোগাযোগ করছে এবং তারপরে আপনার সার্ভারটি উইন্ডোজ দ্বারা প্রতিস্থাপিত হবে ... ভাল নয়।
আন্দ্রেয়াস

25

আপনি যদি echoকোনও ব্রাউজারে যুক্ত হন তবে আপনি <br/>আপনার বিবৃতিটি ব্যবহার করতে পারেন :

echo 'Will print a newline<br/>';
echo 'But this wont!';

3
দুর্ভাগ্যক্রমে এটি টার্মিনাল উদ্দেশ্যে বেশি .. আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ যদিও।
ম্যাট

কেবলমাত্র একটি পাঠ্য ইমেলের মাধ্যমে এটি ব্যবহার করে দেখুন;)
কাই নোক

22

এফওয়াইআই ডাবল উদ্ধৃতি ব্যতীত স্ট্রিংগুলিতে নিউলাইনগুলি পাওয়া সম্ভব:

printf('Please%1$sgive%1$sme%1$snewlines%1$s', PHP_EOL);

যা কার্যকর হতে পারে যদি আপনার ডাবল উদ্ধৃতিগুলির অযৌক্তিক ভয় কোনও সীমাবদ্ধতা না জানে। যদিও আমি আশঙ্কা করি এই প্রতিকারটি রোগের চেয়েও খারাপ হতে পারে।


এটি কোনও ভয় নয় .. আপনি যখন একক উদ্ধৃতি ব্যবহার করেন তখন আপনি কেবল আরও ভাল পারফরম্যান্স পান, তাই আমি এগুলি আরও প্রায়ই ব্যবহার করার চেষ্টা করি তবে না .. তবে হ্যাঁ, এটি এই সমস্যার জন্য সত্যিই দুর্দান্ত সমাধান নয়, এটি তার মূল্য থেকে বেশি ঝামেলা trouble । ধন্যবাদ।
ম্যাট

5
আমি এটি পরীক্ষা করিনি তবে আমি বাজি ধরব যে ডাবল কোট ব্যবহার করা ব্যবহারের চেয়ে দ্রুত is printf সাধারণভাবে স্ট্রিং কেটেশন ।
মিক্কো রেন্টালাইনেন

এটি সর্বদা অযৌক্তিক নয়, আপনি যা করতে চান তার উপর নির্ভর করে ডাবল-কোট সমস্যাযুক্ত হতে পারে। echo 'For example, I want this to spit out php code.\necho $this->stuff;';
ডেভিড বাউকুম

@ ডেভিডবাউকাম, আমি জানি এটি একটি পুরানো থ্রেড তবে কেবল নিজের এবং অন্য যে কেউ এটিকে হোঁচট খাওয়ার জন্য রেফারেন্সের জন্য echo "For example, I want this to spit out php code.\necho \$test;";- আপনি দেখতে পাচ্ছেন যে পরিবর্তনগুলি থেকে আপনি পালাতে পারবেন, যা আপনার ডাবল উদ্ধৃতি দিয়ে বর্ণিত সমস্যাটির সমাধান করে।
জোশ উড

9

পিএইচপি-তে একক ভিএস ডাবল কোট ব্যবহার করার ক্ষেত্রে পার্থক্য রয়েছে

যেমন: 1. echo '$var\n'; 2।echo "$var\n";

  • 1 এ, পিএইচপি আক্ষরিকভাবে মুদ্রণ করবে: $var\n
  • 2-এ, পিএইচপি-র জন্য মেমোরিতে অবস্থানটি অনুসন্ধান করতে হবে $varএবং সেই জায়গাতে মানটিও ফিরে আসতে হবে, এটিকে একটি নতুন লাইন চরিত্র হিসাবে ars n কে পার্স করতে হবে এবং ফলাফলটি মুদ্রণ করতে হবে

আমরা এক সেকেন্ডের মিলিয়নথের মধ্যে আছি, তবে পারফরম্যান্সে একটি পার্থক্য রয়েছে। আমি আপনাকে যখনই সম্ভব একক উদ্ধৃতি ব্যবহার করার পরামর্শ দেব, এমনকি আপনি এই পারফরম্যান্স বৃদ্ধিটি বুঝতে সক্ষম হবেন না তা জেনেও। পারফরম্যান্সের বিষয়টি যখন আসে তবে আমি একজন অদ্ভুত বিকাশকারী।


ডাবল কোট সমাধান AKA অলস-বিকাশকারী-সমাধানটি ব্যবহার না করে এটি করার সর্বোত্তম উপায় অনুসন্ধান করার চেষ্টা করার জন্য আমি আপনাকে সাধুবাদ জানাই।
লিনাক্সদেব

আপনি যা চান তা করার জন্য আমি সবচেয়ে ভাল উপায়টি জানি: ইকো 'ফু', "\ n";
লিনাক্সদেব

3
এটা করতে ফাস্ট উপায়echo $var + "\n";
Hengjie

2
@ হেনজি: আপনি সম্ভবত বোঝাতে চাইছেন echo $var . "\n";
স্কিপি লে গ্র্যান্ড গৌরু

@ লিনাক্সদেব: আমি এই উত্তরের বিষয়টি দেখতে পাচ্ছি না। যেহেতু 1 এর আউটপুট যাইহোক 2 এর আউটপুটের সমান নয় (এমনকি ধরে নিচ্ছে $var='$var'…), আপনি কি কমলা দিয়ে আপেল তুলনা করছেন না?
স্কিপি লে গ্র্যান্ড গৌরও

8

আপনি একক উদ্ধৃতিতে ব্যবহার করতে পারেন একমাত্র পালানোর ক্রমটি একক উদ্ধৃতি নিজেই for

$foo = 'That\'s great';

একক উদ্ধৃতি দিয়ে তৈরি স্ট্রিংয়ে আপনি একটি নতুন লাইন সন্নিবেশ করানোর একমাত্র উপায় হ'ল আক্ষরিক নিউলাইন sertোকানো

$bar = 'That\'s
cheating';

1
এটি অন্যান্য উত্তরগুলির সাথে সবচেয়ে সহজ সমাধানের সাথে তুলনা করা হয়।
কাই Noack

5

আমি ভাবছি কেন কেউ ফাংশনটি ব্যবহারের বিকল্প যুক্ত করেনি chr():

echo 'Hello World!' . chr(10);

বা, আরও কার্যকর যদি আপনি এটি মিলিয়ন বার পুনরাবৃত্তি করতে চলেছেন:

define('C_NewLine', chr(10));
...
echo 'Hello World!' . C_NewLine;

এটি একটি একক এবং ডাবল-কোটযুক্ত স্ট্রিংকে যুক্ত করে দেওয়ার নির্বোধ দৃষ্টিভঙ্গি এড়িয়ে চলে।


1
এটি দেখতে সবচেয়ে সুন্দর, বেশিরভাগ লিঙ্ক বান্ধব, পোর্টেবল সলিউশন আইএমওর মতো মনে হয়।
দারুল

3

আপনি <<< ব্যবহার করে বিবেচনা করতে পারেন

যেমন

<<<VARIABLE
this is some
random text
that I'm typing 
here and I will end it with the 
same word I started it with
VARIABLE

আরও তথ্য এখানে: http://php.net/manual/en/language.tyype.string.php

বিটিডব্লিউ - কিছু কোডিং এনভায়রনমেন্ট কীভাবে উপরের সিনট্যাক্সটি পরিচালনা করতে পারে তা জানে না।


1
হ্যাঁ হ্যাঁ ... তবে আমি এখনও এই সত্যকে ঘৃণা করি যে শেষে ভার্শিয়াল আপনার কোডের সমস্ত ইন্ডেন্টেশনটি ভেঙে ফেলেছে ... আমি HEREDOC সিনট্যাক্স ব্যবহার করে অনেকগুলি (বোকামি) ত্রুটির মধ্যে পড়েছি
ম্যাট

0

না, ডকুমেন্টেশন অনুসারে , পিএইচপি একক উদ্ধৃতিতে কোনও বিশেষ প্রতীক সনাক্ত করে। এবং যথাসম্ভব একক উদ্ধৃতি ব্যবহারের কোনও কারণ নেই


একক উদ্ধৃতি ব্যবহারের ক্ষেত্রে সামান্য পারফরম্যান্স বৃদ্ধি পেয়েছে। এছাড়াও, আপনি যখন ভেরিয়েবলগুলি প্রতিস্থাপন করতে চান তখন স্পষ্টভাবে সংজ্ঞা দেওয়া ভাল অভ্যাসের মতো বলে মনে হয়।
জ্যাকসন মিলার

4
@Jackson আছে কোন কর্মক্ষমতা বৃদ্ধি। যে কোন ভাবে. এই শিশুসুলভ গুজব ভুলে যান। এবং না, ভেরিয়েবলের কথা বলবেন না, তবে বিশেষ ক্রমগুলির কথা বলুন। আপনি যদি কোনও ক্রম চান, একটি পরিবর্তনশীল বা একটি নতুন লাইন প্রসারিত করতে চান - এর উদ্দেশ্যতে ডাবল উদ্ধৃতি ব্যবহার করুন । এবং ওপি এর উদ্দেশ্যতে এটি ব্যবহার করতে অস্বীকার করা বাজে কথা।
আপনার সাধারণ অনুভূতি

আপনি যখন স্ট্রিংয়ের অভ্যন্তরে কোনও ভেরিয়েবল ইন্টারপোল্ট করতে চান তখন ডাবল কোট ব্যবহার না করার কোনও কারণ নেই। একই /nলাইন ব্রেক জন্য পালানো সঙ্গে যায় । এটি সহজ, ক্লিনার, আরও পঠনযোগ্য এবং শূন্য পারফরম্যান্স পেনাল্টি রয়েছে।
ভিক্টর শ্রাইডার



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