Di bawah ini adalah metode yang paling efisien (dengan run-time) untuk memotong semuanya setelah By pertama dalam sebuah string. Jika By tidak ada, string lengkap dikembalikan. Hasilnya dalam $ sResult.
$sInputString = "Posted On April 6th By Some Dude";
$sControl = "By";
//Get Position Of 'By'
$iPosition = strpos($sInputString, " ".$sControl);
if ($iPosition !== false)
//Cut Off If String Exists
$sResult = substr($sInputString, 0, $iPosition);
else
//Deal With String Not Found
$sResult = $sInputString;
//$sResult = "Posted On April 6th"
Jika Anda tidak ingin menjadi case sensitive, gunakan stripo bukan strpos. Jika Anda berpikir By mungkin ada lebih dari sekali dan ingin memotong semuanya setelah kejadian terakhir, penggunaan strrpos .
Di bawah ini adalah metode yang kurang efisien tetapi membutuhkan lebih sedikit ruang kode. Metode ini juga lebih fleksibel dan memungkinkan Anda melakukan ekspresi reguler apa pun.
$sInputString = "Posted On April 6th By Some Dude";
$pControl = "By";
$sResult = preg_replace("' ".$pControl.".*'s", '', $sInputString);
//$sResult = "Posted On April 6th"
Misalnya, jika Anda ingin menghapus semuanya setelah hari:
$sInputString = "Posted On April 6th By Some Dude";
$pControl = "[0-9]{1,2}[a-z]{2}"; //1 or 2 numbers followed by 2 lowercase letters.
$sResult = preg_replace("' ".$pControl.".*'s", '', $sInputString);
//$sResult = "Posted On April"
Untuk case sensitive, tambahkan pengubah i seperti ini:
$sResult = preg_replace("' ".$pControl.".*'si", '', $sInputString);
Untuk menyelesaikan semuanya dari yang terakhir Dengan jika Anda berpikir mungkin ada lebih dari satu, tambahkan tambahan. * Di awal seperti ini:
$sResult = preg_replace("'.* ".$pControl.".*'si", '', $sInputString);
Tetapi di sini juga ada cara yang sangat ampuh untuk menggunakan preg_match untuk melakukan apa yang Anda coba lakukan:
$sInputString = "Posted On April 6th By Some Dude";
$pPattern = "'Posted On (.*?) By (.*?)'s";
if (preg_match($pPattern, $sInputString, $aMatch)) {
//Deal With Match
//$aMatch[1] = "April 6th"
//$aMatch[2] = "Some Dude"
} else {
//No Match Found
}
Ekspresi reguler mungkin tampak membingungkan pada awalnya, tetapi mereka bisa sangat kuat dan sahabat Anda setelah Anda menguasainya! Semoga berhasil!