PHP में एक साथ दो तार कैसे मिलाएं?


140

मैं वास्तव में नहीं जानता कि कैसे वर्णन करना है जो मैं चाहता था लेकिन मैं आपको दिखाता हूँ:

उदाहरण के लिए:

$data1 = "the color is";
$data2 = "red";

मुझे क्या करना चाहिए (या प्रक्रिया) इसलिए $ परिणाम का संयोजन है $data1और $data2?

वांछित परिणाम:

$result = "the color is red";

13
इसे "स्ट्रिंग कॉन्टेनेशन" कहा जाता है और +संख्याओं के लिए इससे अधिक विदेशी नहीं होना चाहिए । कृपया एक पुस्तक / ट्यूटोरियल के साथ शुरू करें और भाषा में मूल ऑपरेटरों के साथ खुद को परिचित करें।

1
इसे करने के बहुत सारे तरीके हैं। यदि आप उत्तर देखते हैं तो आप इसे देख सकते हैं। लेकिन सबसे सरल का उपयोग करें। उदाहरण के लिए $ परिणाम = "$ data1 $ data2"; बस। या $ परिणाम = $ data1। $ data2;
जौहरी

1
@ मैचविटी आप जादुई स्तर पर सुरक्षा स्तर बढ़ा सकते हैं ताकि बेमानी पोस्ट इस पृष्ठ पर जमा न हों?
मिकमैकुसा

जवाबों:


206
$result = $data1 . $data2;

इसे स्ट्रिंग संघनन कहा जाता है। आपके उदाहरण में एक जगह की कमी है, इसलिए उसके लिए विशेष रूप से, आपको इसकी आवश्यकता होगी:

$result = $data1 . ' ' . $data2;

85

दो तारों को एक साथ जोड़ने के कई तरीके हैं।

संघचालक का उपयोग करें .(और .=)

PHP .में कॉन्फेंशन ऑपरेटर होता है जो अपने दाएं और बाएं तर्कों का कॉन्टेक्टेशन लौटाता है

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

यदि आप एक स्ट्रिंग को दूसरे स्ट्रिंग में जोड़ना चाहते हैं तो आप .=ऑपरेटर का उपयोग करेंगे :

$data1 = "the color is ";
$data1 .= "red"

जटिल (घुंघराले) वाक्य रचना / दोहरे उद्धरण तार

PHP में दोहरे उद्धरण चिह्नों में निहित चर प्रक्षेपित होते हैं (अर्थात उनके मान चर के लिए "स्वैप आउट" होते हैं)। इसका अर्थ है कि आप चर को स्ट्रिंग के स्थान पर रख सकते हैं और उनके बीच में एक स्थान रख सकते हैं। घुंघराले ब्रेसिज़ यह स्पष्ट करते हैं कि चर कहाँ हैं।

$result = "{$data1} {$data2}";

नोट: यह आपके मामले में ब्रेसिज़ के बिना भी काम करेगा:

$result = "$data1 $data2";

आप स्ट्रिंग के अंदर सरणी मानों को संक्षिप्त भी कर सकते हैं:

$arr1 = ['val' => 'This is a'];
$arr2 = ['val' => 'test'];
$variable = "{$arr1['val']} {$arr2['val']}";

का उपयोग करें sprintf()याprintf()

sprintf()हमें शक्तिशाली स्वरूपण विकल्पों का उपयोग करके तार को प्रारूपित करने की अनुमति देता है। यह इस तरह के सरल संगति के लिए ओवरकिल है, लेकिन यह तब काम आता है जब आपके पास एक जटिल स्ट्रिंग होती है और / या डेटा के कुछ स्वरूपण भी करना चाहते हैं।

$result = sprintf("%s %s", $data1, $data2);

printf() एक ही काम करता है, लेकिन तुरंत आउटपुट प्रदर्शित करेगा।

printf("%s %s", $data1, $data2);
// same as
$result = sprintf("%s %s", $data1, $data2);
echo $result;

हियरडॉक

Heredocs का उपयोग चर में स्ट्रिंग को संयोजित करने के लिए भी किया जा सकता है।

$result= <<<EOT
$data1 $data2
EOT;

के ,साथ प्रयोग करेंecho()

यह केवल तब काम करता है जब सामग्री को प्रतिध्वनित करता है और एक चर को निर्दिष्ट नहीं करता है। लेकिन आप PHP के लिए भावों की एक सूची को अलग करने के लिए अल्पविराम का उपयोग कर सकते हैं और उनमें से एक के रूप में रिक्त स्थान के साथ एक स्ट्रिंग का उपयोग कर सकते हैं:

echo $data1, ' ', $data2;

21

किसी ने इसका उल्लेख नहीं किया, लेकिन अन्य संभावना है। मैं इसका उपयोग विशाल sql प्रश्नों के लिए कर रहा हूँ। आप उपयोग कर सकते हैं। = ऑपरेटर :)

$string = "the color is ";
$string .= "red";

echo $string; // gives: the color is red

"मैं इसे विशाल एसक्यूएल प्रश्नों के लिए उपयोग कर रहा हूं।" - ध्यान दें कि यह en.wikipedia.org/wiki/SQL_injection
गतिविधि को कम करना

यह वास्तव में कैसे कड़े स्ट्रिंग या अन्य तरीके से मेरी पैरामीटर क्वेरी में मुझे sql इंजेक्शन देगा?
कोडेलम

मैन्युअल रूप से संपूर्ण एसक्यूएल प्रश्नों का निर्माण (कम से कम "विशाल एसक्यूएल प्रश्नों के लिए" द्वारा सुझाया गया) ठीक नहीं है। सिर्फ पैरामीटर तैयार करना, संपूर्ण प्रश्न इस विशिष्ट सुरक्षा जोखिम से सुरक्षित नहीं होना चाहिए।
गतिविधि

19

.ऑपरेटर के साथ उन्हें मिलाएं :

$result = $data1 . " " . $data2;

या स्ट्रिंग प्रक्षेप का उपयोग करें:

$result = "$data1 $data2";

11
$result = implode(' ', array($data1, $data2));

अधिक सामान्य है।


1
यह उस मामले में बहुत उपयोगी है, जहाँ आप एक सीमांकित सूची बनाना चाहते हैं क्योंकि यह जाँचता है कि क्या var के लिए कोई मान $email_to = implode(', ', array($addr1, $addr2, addr3));नहीं है if($addr != '')आदि
Aba

4
सरणी फ़ंक्शंस का चयन न करें, जब तक कि आपको आवश्यक न हो। क्योंकि सरणी फ़ंक्शंस ऑपरेटरों की तुलना में धीमी गति से कार्य करती है। इसके अतिरिक्त, वे अधिक राम का उपयोग करते हैं।
MERT DO .AN

9

एक और रूप उपलब्ध है:

<?php
$data1 = "the color is";
$data2 = "red";
$result = "{$data1} {$data2}";

6

आप निम्न लाइन कोड की कोशिश कर सकते हैं

$result = $data1." ".$data2;

मैं दोहरे उद्धरण के बजाय एकल उद्धरण का उपयोग करूंगा। लिंक
जैक

5

एक अवधि का उपयोग तारों को समतल करने के लिए किया जाता है। एक स्ट्रिंग में दो स्ट्रिंग चर को बदलने के लिए सरल उदाहरण:

$full = $part1 . $part2;

अपने उदाहरण में, आप करना चाहते हैं:

$result = $data1 . ' ' . $data2;

आप देखेंगे कि मैंने दो चर के बीच एक स्थान का एक तार जोड़ा है। ऐसा इसलिए है क्योंकि आपका मूल $data1एक स्थान के साथ समाप्त नहीं हुआ था। यदि आपने उन्हें इसके बिना संयोजित किया है, तो आपका $resultवैरिएबल दिखने में समाप्त हो जाएगा the color isred


5

आप PHP का उपयोग करके ऐसा कर सकते हैं:

$txt1 = "the color is";
$txt2 = " red!";
echo $txt1.$txt2;

यह दो तारों को मिलाएगा और पुटपुट होगा: "रंग लाल है!"।


1
आपके गढ़े हुए इनपुट मान ओपी के इनपुट स्ट्रिंग का प्रतिनिधित्व नहीं करते हैं और आप उन समाधानों को प्रतिध्वनित कर रहे हैं जिन्हें पहले YEARS कहा गया है। यह एक जावास्क्रिप्ट सवाल नहीं है ताकि सलाह अप्रासंगिक हो। यह पोस्ट पृष्ठ पर कोई मूल्य नहीं जोड़ता है।
मिकमेकुसा

@mickmackusa, ठीक है मैंने अपडेट किया गया पाठ, आप सही हैं लेकिन मैंने js उत्तर यहाँ दिया क्योंकि यह एक बहुत ही मूल प्रश्न है ताकि उपयोगकर्ता अंतर जान सके
Sunil

1
आपका अपडेट ओपी के टेक्स्ट का उपयोग नहीं कर रहा है। प्रश्नों के php प्रश्नों के लिए जावास्क्रिप्ट समाधान प्रदान न करें। यह उत्तर खराब स्वरूपित है और पृष्ठ पर कोई मूल्य नहीं जोड़ता है।
मिकमैकुसा

4
$s = "my name is ";

$s .= "keyur";

echo $s; 

परिणाम:

my name is keyur

9
StackOverflow में आपका स्वागत है। यह अच्छा है, अगर आप सवालों के जवाब देते हैं। हालाँकि, यदि आप ऐसा करते हैं, तो कृपया इसे उचित रूप में प्रारूपित करें। इसके अलावा, आपका जवाब पहले ही दे दिया गया था। यह इस चार साल पुराने पोस्ट में अतिरिक्त मूल्य कैसे जोड़ता है ?
T3 H40

6
यह मौजूदा उत्तरों का सिर्फ एक दोहराव है।
पैग

4
$result = $data1 . $data2;

इसे इस्तेमाल करे


5
यह सही उत्तर नहीं है। यह "रंग isred" का परिणाम है। साथ ही, आपके उत्तर की नकल किसी के उत्तर से सालों पहले की गई है। नीचे मतदान हुआ।
जेसन लियू


0

मैं बिल्कुल स्पष्ट नहीं हूं कि आपकी आवश्यकताएं क्या हैं, लेकिन मूल रूप से आप अलग-अलग दो चर को परिभाषित कर सकते हैं और उसके बाद उन्हें एक साथ जोड़ सकते हैं।

$data1="The colour is ";
$data2="red";

$result=$data1.$data2;

ऐसा करने से आप $ data2 को एक वैश्विक स्तर भी घोषित कर सकते हैं ताकि आप निष्पादन के दौरान इसके मूल्य को बदल सकें, उदाहरण के लिए यह चेकबॉक्स से "लाल" उत्तर प्राप्त कर सकता है।


0

PHP में एक साथ दो तार मिलाएं?

$result = $data1 . ' ' . $data2;

2
यह जवाब कुछ भी नहीं प्रदान करता है अन्य उत्तर पहले से ही प्रदान नहीं किए हैं और यह क्यों या कैसे काम करता है के रूप में कोई स्पष्टीकरण नहीं देता है।
जॉन

-1

1. स्ट्रिंग को अलग करें (प्रत्येक स्ट्रिंग के बीच का स्थान)

सांकेतिक टुकड़ा :

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1.$txt2 ;
 echo  $result. "\n";
 ?>  

आउटपुट: सचिनटेन्डुलकर

2. अंतरिक्ष को मौजूद है, जहां स्ट्रिंग मौजूद है

सांकेतिक टुकड़ा :

<?php
 $txt1 = "Sachin";
 $txt2 = "Tendulkar";

 $result = $txt1." ".$txt2; 
 echo  $result. "\n";
?>  

आउटपुट: सचिन तेंदुलकर

  1. Printf फ़ंक्शन का उपयोग करके स्ट्रिंग को समतल करें।

सांकेतिक टुकड़ा :

  <?php
 $data1 = "Sachin";
 $data2 = "Tendulkar";
 printf("%s%s\n",$data1, $data2);
 printf("%s %s\n",$data1, $data2); 
?>

आउटपुट: सचिन
तेन्दुलकर
सचिन तेंदुलकर


4
यह उत्तर क्या प्रदान करता है जो पहले से ही अन्य उत्तरों द्वारा प्रदान नहीं किया गया है?
जॉन

@rashedcs मेरे लिए बहुत अच्छा काम करता है !! DS
IPSDSILVA

-1

मेरा मानना ​​है कि सबसे अच्छा तरीका है:

$data1 = "the color is";
$data2 = "red";
$result = $data1 . ' ' . $data2;

यदि आप स्थानीयकरण लागू करना चाहते हैं, तो आप ऐसा कुछ कर सकते हैं:

$translationText = "the color is %s";
$translationRed  = "red";
$result = sprintf($translationText, $translationRed);

यह थोड़ा धीमा है, लेकिन यह व्याकरण के नियमों को नहीं मानता है।


-3

यह प्रयास करें, हम स्ट्रिंग में डॉट (।) प्रतीक के साथ जोड़ सकते हैं

$data1 = "the color is";
$data2 = "red";

echo $data1.$data2; //the color isred
echo $data1." ".$data2; // the color is red (we have appended space)

1
यह जवाब कुछ भी नहीं प्रदान करता है अन्य जवाब पहले से ही प्रदान नहीं किया है।
जॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.