Heim > Backend-Entwicklung > PHP-Tutorial > 新学习static function为啥返回数据为空

新学习static function为啥返回数据为空

WBOY
Freigeben: 2016-06-13 13:05:02
Original
921 Leute haben es durchsucht

新学习static function为什么返回数据为空?
最近在学习static function,构建一个这样的代码。CURL获取网页源码,正则取出title等,为什么我的代码什么也没有返回?哪里的问题?能否详细解释一下?谢谢。

<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 />
	}
Nach dem Login kopieren

------最佳解决方案--------------------
那是你正则规则串写错了
/()(.*)(<\/h1>)/is
------其他解决方案--------------------
先new一个对象,实例化
------其他解决方案--------------------
本帖最后由 xuzuning 于 2012-11-10 15:32:54 编辑 运行你的代码不是可以显示出整个页面吗?

当然要使你的代码按你的预期运行,还需要
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
在 $htmls = curl_exec($ch); 之前


------其他解决方案--------------------
引用:
本帖最后由 xuzuning 于 2012-11-10 15:32:54 编辑
运行你的代码不是可以显示出整个页面吗?

当然要使你的代码按你的预期运行,还需要
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
在 $htmls = curl_exec($ch); 之前


设置了,还是输出空白,什么也没有,我的PHP Version 5.3.8。
我想返回正则出的

的文字部分。
------其他解决方案--------------------
引用:
先new一个对象,实例化


怎么个new法?不会。
------其他解决方案--------------------
那你可能是没有加载 curl 扩展吧?
------其他解决方案--------------------
引用:
那你可能是没有加载 curl 扩展吧?

单纯curl代码可以返回www.php.net的内容。可是构建一个static function,却什么也没有了。
$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;
Nach dem Login kopieren


------其他解决方案--------------------

引用:
那是你正则规则串写错了
/()(.*)()/is

有道理,是不是应该去掉is?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage