Home > Backend Development > PHP Tutorial > 新学习static function为啥返回数据为空

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

WBOY
Release: 2016-06-13 13:05:02
Original
924 people have browsed it

新学习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 />
	}
Copy after login

------最佳解决方案--------------------
那是你正则规则串写错了
/()(.*)(<\/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;
Copy after login


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

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

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template