ホームページ > バックエンド開発 > PHPチュートリアル > 新しく学習した静的関数が空のデータを返すのはなぜですか?

新しく学習した静的関数が空のデータを返すのはなぜですか?

WBOY
リリース: 2016-06-13 13:05:02
オリジナル
921 人が閲覧しました

新しく学習した静的関数が空のデータを返すのはなぜですか?
最近私は静的関数を学習し、このようなコードを構築しています。 CURL は Web ページのソース コードを取得し、正規表現を使用してタイトルなどを抽出します。コードが何も返さないのはなぜですか?何が問題ですか?詳しく説明してもらえますか?ありがとう。

<br />
        $url = 'www.php.net/archive/2012.php';<br />
	if (!$url){<br />
		exit;<br />
	}<br />
	echo TestClass::getTitle($url);<br />
	class TestClass<br />
	{<br />
		static function getTitle($url)<br />
		{<br />
			$text = self::getHtml($url);<br />
			preg_match("/(<h1.*>)(.*)(<\/h1>)/is",$text,$h1tags); <br />
			$title =  $h1tags[0];<br />
			if (!$title) return false;<br />
			return $title;<br />
		}<br />
		static function getHtml($url){<br />
			$ch = curl_init();<br />
			curl_setopt($ch, CURLOPT_URL, $url);<br />
			$htmls = curl_exec($ch);<br />
			curl_close($ch);<br />
			if (!$htmls) return false;<br />
			return $htmls;<br />
		}<br />
	}
ログイン後にコピー

-----最善の解決策---------
それがあなたの通常のルールです書き方が間違っています
/()(.*)()/is
------その他の解決策----------- - --------
まず新しいオブジェクトを作成し、
をインスタンス化します------その他の解決策------------- - ------
この投稿は xuzuning によって最終編集されました: 2012-11-10 15:32:54 コードを実行するとページ全体が表示されませんか?

もちろん、コードを期待どおりに実行するには、
も必要です curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$htmls =curl_exec($ch); 前


-----その他の解決策---------
引用:
この投稿は、2012-11-10 15:32:54 に xuzuning によって最終編集されました
コードを実行してページ全体を表示することはできないでしょうか?

もちろん、コードを期待どおりに実行するには、
も必要です curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$htmls =curl_exec($ch); 前


設定後、出力はまだ空白で何もありません。My PHP バージョン 5.3.8。
正規表現から

のテキスト部分を返したい。
------その他の解決策---------
引用:
まず新しいオブジェクトを作成し、インスタンス化します


新しい方法とは何ですか?しません。
------その他の解決策------------------
その場合、curl 拡張機能がロードされていない可能性があります。 ?
------その他の解決策---------
引用:
では、カール拡張機能をロードしていない可能性がありますか?

単純なcurlコードはwww.php.netのコンテンツを返すことができます。しかし、静的関数を構築しても何も生成されません。
$url = 'www.php.net/archive/2012.php';<br />
$ch = curl_init();<br />
curl_setopt($ch, CURLOPT_URL, $url);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
$htmls = curl_exec($ch);<br />
curl_close($ch);<br />
echo $htmls;
ログイン後にコピー


-----その他の解決策---------

引用:
それは、通常のルール文字列を間違って書いたからです
/()(.*)()/は

それは理にかなっていますが、削除する必要がありますか?

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート