php - एक या अधिक रिक्त स्थान या टैब द्वारा स्ट्रिंग को विस्फोट करें




regex explode (7)

@OP इससे कोई फर्क नहीं पड़ता, आप बस विस्फोट के साथ एक स्थान पर विभाजित कर सकते हैं। जब तक आप उन मानों का उपयोग नहीं करना चाहते हैं, विस्फोटित मूल्यों पर पुनरावृत्ति करें और रिक्त स्थान को छोड़ दें।

$str = "A      B      C      D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){    
    if ( trim($b) ) {
     print "using $b\n";
    }
}

मैं एक या अधिक रिक्त स्थान या टैब द्वारा स्ट्रिंग को कैसे विस्फोट कर सकता हूं?

उदाहरण:

A      B      C      D

मैं इसे एक सरणी बनाना चाहता हूं।


अन्य लोगों द्वारा प्रदान किए गए उत्तरों (बेन जेम्स) काफी अच्छे हैं और मैंने उनका उपयोग किया है। चूंकि user889030 बताता है, अंतिम सरणी तत्व खाली हो सकता है। दरअसल, पहले और आखिरी सरणी तत्व खाली हो सकते हैं। नीचे दिया गया कोड दोनों मुद्दों को संबोधित करता है।

# Split an input string into an array of substrings using any set
# whitespace characters
function explode_whitespace($str) {  
  # Split the input string into an array
  $parts = preg_split('/\s+/', $str);
  # Get the size of the array of substrings
  $sizeParts = sizeof($parts);
  # Check if the last element of the array is a zero-length string
  if ($sizeParts > 0) {
    $lastPart = $parts[$sizeParts-1];
    if ($lastPart == '') {
      array_pop($parts);
      $sizeParts--;
    }
    # Check if the first element of the array is a zero-length string
    if ($sizeParts > 0) {
      $firstPart = $parts[0];
      if ($firstPart == '') 
        array_shift($parts); 
    }
  }
  return $parts;   
}

टैब द्वारा अलग करने के लिए:

$comp = preg_split("/[\t]/", $var);

रिक्त स्थान / टैब / न्यूलाइन द्वारा अलग करने के लिए:

$comp = preg_split('/\s+/', $var);

अकेले रिक्त स्थान से अलग होना:

$comp = preg_split('/ +/', $var);


मुझे लगता है कि आप preg_split चाहते हैं:

$input = "A  B C   D";
$words = preg_split('/\s+/', $input);
var_dump($words);

लेखक ने विस्फोट के लिए कहा, आप इस तरह विस्फोट का उपयोग कर सकते हैं

$resultArray = explode("\t", $inputString);

नोट: आपको डबल कोट का उपयोग करना चाहिए, एकल नहीं।


विस्फोट का उपयोग करने के बजाय, preg_split का प्रयास करें: preg_split


Explode string by one or more spaces or tabs in php example as follow: 

   <?php 
       $str = "test1 test2   test3        test4"; 
       $result = preg_split('/[\s]+/', $str);
       var_dump($result);  
    ?>

   /** To seperate by spaces alone: **/
    <?php
      $string = "p q r s t";   
      $res = preg_split('/ +/', $string);
      var_dump($res);
    ?>




explode