PHP विभाजन विकल्प?


92

PHP मुझे बता रही है कि विभाजन को हटा दिया गया है, मुझे किस वैकल्पिक विधि का उपयोग करना चाहिए?

जवाबों:


131

explodeएक विकल्प है। हालांकि, यदि आप एक नियमित अभिव्यक्ति के माध्यम से विभाजित करना चाहते हैं, तो preg_splitइसके बजाय विकल्प है ।


15
मैं असहमत हूं - explodeविकल्प नहीं है, क्योंकि यह समान कार्य नहीं करता है split, अर्थात्: एक स्ट्रिंग को एक नियमित अभिव्यक्ति द्वारा विभाजित करना । उस उद्देश्य के लिए, का उपयोग करें preg_split
nickf

1
@nickf: यह सही ढंग से बताया गया है, मुझे शुरू में इसे जोड़ना चाहिए था। धन्यवाद
सरफराज

विभिन्न भाषाओं में, splitविधि हमेशा नियमित अभिव्यक्ति को स्वीकार नहीं करती है। .NET में, पायथन String.Split()/ / str.split()विधियाँ केवल सुई के रूप में एक निश्चित, शाब्दिक स्ट्रिंग को स्वीकार करती हैं। इस प्रकार, explodeसही है। जावा, जावास्क्रिप्ट, रूबी से आने वालों के लिए, preg_splitसमाधान को बंद कर सकते हैं।
विकिटोर स्ट्राइब्यू

यह Visual Basic .NET के String.Split () के साथ संगत है। नाइस
अशरफुल इस्लाम

22

splitक्योंकि यह उन कार्यों के परिवार का हिस्सा है जो POSIX नियमित अभिव्यक्ति का उपयोग करते हैं; वह पूरा परिवार पीसीआरई ( preg_*) कार्यों के पक्ष में पदावनत है ।

यदि आपको नियमित अभिव्यक्ति की कार्यक्षमता की आवश्यकता नहीं है, तो explodeएक बहुत अच्छा विकल्प है (और यह सिफारिश की गई है splitकि भले ही पदावनत नहीं किया गया हो), यदि दूसरी तरफ आपको नियमित अभिव्यक्ति का उपयोग करने की आवश्यकता है, तो पीसीआरई वैकल्पिक बस है preg_split


16
  • preg_split यदि आपको नियमित अभिव्यक्तियों द्वारा विभाजित करने की आवश्यकता है।
  • str_split यदि आपको पात्रों द्वारा विभाजित करने की आवश्यकता है।
  • explode अगर आपको कुछ सरल से विभाजित करने की आवश्यकता है।

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


7

मैं यहां स्पष्ट करना चाहता हूं जो इससे preg_split();बहुत दूर है लेकिन explode();उसी तरह से उपयोग किया जा सकता हैsplit();

निम्नलिखित के बीच तुलना split();और explode();उपयोग है

विभाजन () का उपयोग कैसे किया गया

<?php

$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo $month; // foo
echo $day; // *
echo $year;

?>

URL: http://php.net/manual/en/function.split.php

कैसे विस्फोट () का उपयोग किया जा सकता है

<?php

$data = "04/30/1973";
list($month, $day, $year) = explode("/", $data);
echo $month; // foo
echo $day; // *
echo $year;

?>

URL: http://php.net/manual/en/function.explode.php

यहाँ हम इसका उपयोग कैसे कर सकते हैं :)


2

आप इसके बजाय आसान फ़ंक्शन प्रीग_मैच का उपयोग कर सकते हैं, यह अन्य सभी की तुलना में बेहतर और तेज़ है।

$var = "<tag>Get this var</tag>";
preg_match("/<tag>(.*)<\/tag>/", $var , $new_var);
echo $new_var['1']; 

आउटपुट: Get this var



0

यदि आप एक स्ट्रिंग को शब्दों में विभाजित करना चाहते हैं, तो आप विस्फोट () या str_word_count () का उपयोग कर सकते हैं।


0

एक ही मुद्दा था, लेकिन मेरे कोड को PHP 5 और PHP 7 दोनों पर काम करना चाहिए।

यहाँ मेरा एक कोड ऑफ़ कोड है, जिसने इसे हल किया है .. एक तारीख को डमी प्रारूप में एक सीमांकक के साथ इनपुट करें "/ / -।"

<?php
function DateToEN($date){
  if ($date!=""){
    list($d, $m, $y) = function_exists("split") ?  split("[/.-]", $date) : preg_split("/[\/\.\-]+/", $date);
    return $y."-".$m."-".$d;
  }else{
    return false;
  }
}
?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.