3

我有这段代码是为了让我在下载.torrents时更轻松,代码如下,

$file = 'http://kat.ph/new/';
if($file = file_get_contents($file)) {
    // RETURN ALL MAGNET URIS FROM FILE
    preg_match_all('/\"magnet\:\?xt\=urn\:btih\:(.*?)\"/x', $file, $magnetURI);
    // FOR EACH MAGNET URI RETURNED
    foreach($magnetURI[1] as $info) {
        echo '<a href="magnet:?xt=urn:btih:' . $info . '">' . $info . '</a><br /><br /><br /><br />';
    }
} else {
    echo '<strong>FAIL</strong>';
}

它应该匹配磁铁 uri 链接并以易于点击的链接将它们返回给我,它适用于其他网站尝试用 替换文件http://thepiratebay.se/recent/0,但由于某种原因,示例中的网站无法正常工作?!?

谢谢你的帮助!

4

1 回答 1

1

它对我有用,请尝试删除x修饰符。


问题是file_get_contents()调用,显然 kat.ph 不喜欢匿名用户代理,如果您尝试输出$file变量,您会得到一堆垃圾,例如:

��}�r�Ʋ�o�)&\ˑ\@�Aڒ�I���X���8Y;�r �!    �Ĭ���� ϓ����.   ��ey�ĥg�랾��;�u޻��:��Q6����9�Q�[e��E�~vv��J��Z�٬��=5��n-̒>Ũc�Q�O���ip�[s�(cQ&�&amp;�F<�m������T^oD��e��l 7j���e��]K�K�ţ�ݚ�R/ &YG���x��|��gQS�D��dq�����~�ӌ�32�2HS8�,�B��)z��x'4M�S;uq�ӝ0�NH���Z��OG�e5����Q���zhd4<ŋ�u����Ug��o+�� �H�b�8ɼiFY��f0�C���oR��e*t2��x���Մ.߭L�����,�H��7]��Q�q=1fW�   ��"?�!�{O/5��f��IH����[�DO�8Y#i�]i�S�5�R>�,=��SG��_�G��4o�,4�X�XcS� 36����wl�Vr�0D�_I�Ì%�X�*s�Q��$M�s4r| �֎�}$�g`+���0�c#7�'4S&�:|�~� ��$��S�d���y�����8 ��u{���M=P㩑����[oN����?��h`�/ћ}����R|�A � z;�0(�(���Q����=�8���&gt;І[�ㆻF,��]��M����6!��=a4GW�+o���z��o۩s�s    ]�0��H�b�����#�/d��Z�/ԕߌ6�P�|�gE�V���dz�ćz���|�zl�ɗ�)��i���e�$�/"��l�ʟ�) ���K�ʗx��Ʉ��:9'H�$�2�ؓP�,�r/��+Fcmq]�P|���n 

尝试将用户代理设置为已知浏览器(通过file_get_contents()HTTP 上下文或 CURL)。

于 2012-05-18T23:42:04.253 回答