To sum up, there're four ways. Delimiter =
:
strstr($str, '=', true);
strtok($str, '=');
explode('=', $str)[0]; // Slowest
substr($str, 0, strpos($str, '='));
This table illustrates output differences. Other outputs are pretty isomorphic.
+-------+----------------+----------+-------+----------------+-------+-------+
| $str | "before=after" | "=after" | "=" | "no delimeter" | 1 | "" |
+-------+----------------+----------+-------+----------------+-------+-------+
| 1. | "before" | "" | "" | false | false | false |
| 2. | "before" | "after" | false | "no delimeter" | "1" | false |
| 3. | "before" | "" | "" | "no delimeter" | "1" | "" |
| 4. | "before" | "" | "" | "" | "" | "" |
If troubles with multibyte appear then try for example mb_strstr
:
mb_strstr($str, 'ζ', true);
Further notice: explode
seems to be more straightforward, deals with multibyte and by passing third parameter returns both before and after delimeter
explode('ζ', $str, 2);