1行1単語である必要はないよ。トークン区切り文字列に半角空白入ってるでしょ。
それに、>>568のような気持ちがあるなら警告レベルを落とすなんて雑なことをせず、
コードを直すほうがいい。

それはそれとして、問題がいくつかあるので指摘。
・Windowsの改行コードはCRLF(\r\n)
・どこかに0という単語が含まれてるとそこで終わる
・古いPHPだともっといろんなところで終わる
これらの問題は while ($tok !== false) とすれば解決するけれど、
なぜそうなるのかはマニュアルでも見て。

てか、その本ダメだと思うなら捨てちゃえばいいと思うよ。
著者サイトで正誤表が公開されてないかの確認はしてる?

# 昔は出版社に誤植の指摘すると図書券くれたりしたもんだけど今はないのかな。