Php de bir metni , veriyi belirli kriterler , karakterler , noktalama işaretlerine göre parçalamak istersek ve bunu çoklu yapmak istersek bunu bir fonksiyon ile halledebiliyoruz. Daha açık ifade etmek gerekirse örneğin bir post için atılan etiketleri virgül ile ayırarak dizi halinde tek tek yazdırabiliriz.Ancak ihtiyaca göre farklı bir metinde yer alan “:” işareti ve/veya “;” , “,” gibi işaretleri de baz almak istersek. Yani parçalayacağımız metinde birden fazla sonuç göstermek için terim bulunuyorsa işte burada Çoklu Explode Kullanımı (multiExplode) yani çoklu parçalama işimize yarıyor. Aşağıdaki fonksiyon işimizi fazlasıyla görüyor.
function multiexplode ($delimiters,$string) { $ready = str_replace($delimiters, $delimiters[0], $string); $launch = explode($delimiters[0], $ready); return $launch;
Fonksiyonda görüldüğü üzere değişkende tutulan değer için sınırsız sayıda bir dizi şeklinde parametre aktarımı söz konusu. Yani metinde belirlediğimiz karakterler var ise bunları dizi halinde çıktı verdiğimizde anahtar değerler ile bir bir yazdırılacak. Çıktıya da bakarsak rahatlıkla algılayabiliriz.
$text = "here is a sample: this text, and this will be exploded. this also | this one too :)"; $exploded = multiexplode(array(",",".","|",":"),$text); print_r($exploded);
Çıktı da aşağıdaki gibi olacaktır ;
// Array // ( // [0] => here is a sample // [1] => this text // [2] => and this will be exploded // [3] => this also // [4] => this one too // [5] => ) // )
Böylece çoklu parçalama işinizi bir fonksiyon aracılığı ile görebilirsiniz. Metinde yer alan birden fazla değere göre metni parçalamak için stackoverflow da gördüğüm örneği paylaştım.Aşağıdan da linke tıklayarak daha fazla bilgi alabilirsiniz.
Kaynak => https://stackoverflow.com/questions/4955433/php-multiple-delimiters-in-explode