使用PHP解析文本并在句点之前返回主机名

$hostname = "abc.domain.com"

I just want "abc" and nothing after it.

Use explode():

$parts = explode('.', $hostname);
// $parts[0]

Will it always have a subdomain?

If so, you can just do

$parts = explode('.', $hostname);
$subdomain = $parts[0];

If there might not be a subdomain

$parts = explode('.', $hostname);
$subdomain = count($parts) == 3 ? $parts[0] : NULL;

With substr and strpos:

$host = substr($hostname, 0, strpos($hostname, '.'));

or maybe better, strstr:

$host = strstr($hostname, '.', true);

There are a lot of functions available to process strings.