Mam bazę danych, która ma nazwy i chcę użyć PHP zastąpić po powierzchni sprawie nazewnictwa, przykład danych:Jak usunąć wszystko po spacji w PHP?
$x="Laura Smith";
$y="John. Smith"
$z="John Doe";
chcę wrócić
Laura
John.
John
Mam bazę danych, która ma nazwy i chcę użyć PHP zastąpić po powierzchni sprawie nazewnictwa, przykład danych:Jak usunąć wszystko po spacji w PHP?
$x="Laura Smith";
$y="John. Smith"
$z="John Doe";
chcę wrócić
Laura
John.
John
Czy to ta zastępuje niczego po znaku spacji. Może być również używany do kresek:
$str=substr($str, 0, strrpos($str, ' '));
Nie ma potrzeby używania wyrażenia regularnego, wystarczy użyć metody rozbicia.
$item = explode(" ", $x);
echo $item[0]; //Laura
Myślę, że możesz również posunąć się do $ item = explode ("", $ x) [0]; –
x = "Laura Smith"; $ temparray = implode ('', $ x); echo $ temparray [0];
Przepraszam, czasami mieszać implode i eksplodować ...
Można zrobić też jak ten
$str = preg_split ('/\s/',$x);
print $str[0];
Metoda podana przez TheBlackBenzKid jest ważna dla pytania - howev er po przedstawieniu argumentu, który nie zawiera spacji, zwróci pusty ciąg znaków.
Chociaż Wyrażenia regularne będzie bardziej kosztowne obliczeniowo, zapewniają one dużo więcej flexibiltiy, np:
function get_first_word($str)
{
return (preg_match('/(\S)*/', $str, $matches) ? $matches[0] : $str);
}
Wystarczy dodać go do mieszanki, niedawno nauczył się tej techniki:
list($s) = explode(' ',$s);
I właśnie zrobiłem szybki test porównawczy, ponieważ nie spotkałem się wcześniej z metodą strtok, a strtok jest o 25% szybszy niż moje rozwiązanie listy/eksplodować, na przykład podanych łańcuchów.
Ponadto im dłuższy/bardziej ograniczony początkowy ciąg, tym większa luka wydajności. Daj blok 5000 słów, a eksplodować stworzy 5000 elementów. strtok po prostu weźmie pierwszy "element" i pozostawi resztę w pamięci jako ciąg znaków.
Więc strtok wygrywa dla mnie.
$s = strtok($s,' ');
To powinna być zaakceptowana odpowiedź. Dziękuję za sprawdzenie działania. – Marcel
Ta odpowiedź usunie wszystko po pierwszej przestrzeni i nie ostatni jak na razie przyjął answer.Using strpos
i substr
$str = "CP hello jldjslf0";
$str = substr($str, 0, strpos($str, ' '));
echo $str;
dwa potencjalne problemy z tym: Jak użyć 'strrpos() ', * ostatni * biały spacja jest wyszukiwany i możesz skończyć z nazwami takimi jak" Hello Nice "dla ciągów takich jak" Hello Nice World ". Drugą kwestią jest to, że nie zwróci niczego, jeśli w ogóle nie ma żadnych białych znaków. Chociaż takie zachowanie może być pożądane, może również powodować irytację. – str