mirror of
				https://github.com/Mabbs/mabbs.github.io
				synced 2025-11-04 01:13:10 +08:00 
			
		
		
		
	
		
			
	
	
		
			55 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								layout: post
							 | 
						|||
| 
								 | 
							
								title: 如何不使用贴吧App查看贴吧
							 | 
						|||
| 
								 | 
							
								tags: [贴吧, PHP]
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  为自己手机的最后一片净土而战(ง •_•)ง<!--more-->    
							 | 
						|||
| 
								 | 
							
								  
							 | 
						|||
| 
								 | 
							
								# 起因
							 | 
						|||
| 
								 | 
							
								  由于某些原因,我还是很想上百度贴吧看看的。虽然一些大公司很流氓,但也正因为他们是大公司,所以积累的信息才更多……    
							 | 
						|||
| 
								 | 
							
								  一年前,我因为使用百度搜索时打不开搜索内容,所以不得不[使用了一些办法](/2019/05/12/baidu.html)来解决这个问题。不过看起来百度也知道自己这么做是在砸自家招牌,所以后来这个问题百度貌似他们自己解决了。   
							 | 
						|||
| 
								 | 
							
								  而现在呢,我又因为某些原因需要使用百度贴吧,当然安装贴吧App就是在侮辱我的手机。一般来说,遇到这个问题只要用桌面版的贴吧就好了,但是很遗憾的是我用的浏览器是基于WebView的Firefox Rocket,不支持更改UA……既然如此,我只好运用我编程的技能解决这个问题了。   
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 解决方案
							 | 
						|||
| 
								 | 
							
								  在正常情况下用手机看贴吧的贴子是看不到全部内容的,只能看到前两楼,当然这样的贴吧就是废物,要想看剩下的内容就需要下载贴吧App了。不过以前贴吧有一个极简版,虽然很简陋,但是也够用了。然而很糟糕的是,百度他们不允许极简版列出贴子的标题了,如果用极简版看贴吧的话是看不到贴子的列表的。   
							 | 
						|||
| 
								 | 
							
								  不过如果知道贴子的ID,貌似还是能正常打开的,所以我们只需要获得到贴子的列表和ID就OK了。   
							 | 
						|||
| 
								 | 
							
								  经过我的研究,只要在`http://tieba.baidu.com/mo/q-----1----/m?kz=`后面加上贴子的ID就能看到贴子的全部内容,只是这个貌似不能发帖,不过我也不需要这个就是了。   
							 | 
						|||
| 
								 | 
							
								  于是我参考了以前[Iwara Viewer](/2019/04/13/iwara.html)的代码,写出了最终的代码。
							 | 
						|||
| 
								 | 
							
								  
							 | 
						|||
| 
								 | 
							
								# 代码
							 | 
						|||
| 
								 | 
							
								```php
							 | 
						|||
| 
								 | 
							
								<?php
							 | 
						|||
| 
								 | 
							
								if (isset($_GET["kw"])) {
							 | 
						|||
| 
								 | 
							
								if (!isset($_GET["pn"])) {
							 | 
						|||
| 
								 | 
							
								    $_GET["pn"] = 1;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								$url = 'https://tieba.baidu.com/f?kw='.iconv("utf-8","gb2312",$_GET["kw"]).'&pn='.($_GET["pn"]-1)*50;
							 | 
						|||
| 
								 | 
							
								$str = file_get_contents($url);
							 | 
						|||
| 
								 | 
							
								$preg='/<a rel="noreferrer" href="\/p\/(.*?)" title="(.*?)" target="_blank" class="j_th_tit ">/is';
							 | 
						|||
| 
								 | 
							
								preg_match_all($preg,$str,$match);//在$str中搜索匹配所有符合$preg加入$match中
							 | 
						|||
| 
								 | 
							
								echo "<title>Mayx Tieba Viewer</title><h1>Mayx Tieba Viewer</h1><hr />";
							 | 
						|||
| 
								 | 
							
								if ($http_response_header[0] != "HTTP/1.0 200 OK"){
							 | 
						|||
| 
								 | 
							
								    echo "<b>Warning</b>:It's Not Tieba Name<br>";
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								for($i=0;$i<count($match[0]);$i++)//逐个输出超链接地址
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    echo "<a href=\"http://tieba.baidu.com/mo/q-----1----/m?kz=".$match[1][$i]."\">".$match[2][$i]."</a><br>";
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								echo "<hr><a href=\"?pn=".($_GET["pn"] + 1)."&kw=".$_GET["kw"]."\" >Next Page</a>";
							 | 
						|||
| 
								 | 
							
								} else {
							 | 
						|||
| 
								 | 
							
								echo '<title>Mayx Tieba Viewer</title><h1>Mayx Tieba Viewer</h1><hr><form action="" method="get">Please Input Tieba Name:<input type="text" name="kw" required><input type="submit" value="Submit"></form>';
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								   虽然说用JavaScript貌似也可以做到,可惜我学艺不精,只好用PHP解决了。
							 | 
						|||
| 
								 | 
							
								   
							 | 
						|||
| 
								 | 
							
								# 演示
							 | 
						|||
| 
								 | 
							
								  <https://yuri.gear.host/tiebaview.php>   
							 | 
						|||
| 
								 | 
							
								  
							 | 
						|||
| 
								 | 
							
								# 后记
							 | 
						|||
| 
								 | 
							
								  P.S.这个东西是专门为了手机设计的,所以电脑完全没必要使用这个看帖子。   
							 | 
						|||
| 
								 | 
							
								  另外就是希望百度做个人吧……HTML肯定是能实现相应功能的,非要人下载App,虽然我也知道是为了利益,但是这真的是太恶心了……另外……知乎也一样,太恶心最终一定会流失掉用户的。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								# 真相
							 | 
						|||
| 
								 | 
							
								  我不知道的是很多的小程序上也有贴吧,像微信上也有,白做了😂……算了,就当练手+氵一篇了23333
							 |