/*@author mxlin697@126.com
*实验网址 https://www.shiyanlou.com/courses/175
*/
1、 实验名称 :thinkphp云书签
效果:
①显示所有书签
https://img-blog.youkuaiyun.com/20170622170908729?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTGlseW5ldHRl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
②新增书签
https://img-blog.youkuaiyun.com/20170622170948019?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTGlseW5ldHRl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
③查找书签
https://img-blog.youkuaiyun.com/20170622171044561?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTGlseW5ldHRl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
④以及修改删除,刷新的功能
2、部分源码
php部分
①创建消息模板,使返回给ajax的格式统一
/*
* 创建消息模板
* @param integer $code
* @param string $content
* @return string
* */
private function CreateMsg($code,$content){
if(is_array($content)){
$content = json_encode($content);
$result = '{"code":"'.$code.'","content":'.$content.'}';
}else{
$result = '{"code":"'.$code.'","content":"'.$content.'"}';
}
return $result;
}
②格式化url
/*
* 格式化icon后的url
* */
private function FormatIcon($href,$iconUrl){
if(!$iconUrl != null && preg_match($href,$iconUrl)){
$urlData = parse_url($href);
return $urlData['scheme'].'//'.$urlData['host'].$iconUrl;
}elseif($iconUrl==null){
$iconUrl = "https://dn-anything-about-doc.qbox.me/md04176000.png";
return $iconUrl;
}
}
③获取站点的url和icon判断所保存的url是否正确
//获取站点的title和icon
private function GetMarker($title,$url){
if(!$html = file_get_html($url)){
return false;
}else{
$data['title'] = $title;
}
$data['href'] = $url;
if($icon = $html->find('link[rel=shortcut icon]',0)->href){
$data['icon'] = $this->FormatIcon($url, $icon);
}else{
$data['icon'] = $this->FormatIcon($url, null);
}
return $data;
}
js部分
①把获取数据的ajax抽象 拎出来
function getData(url,data,fn){
$.ajax({
type:"get",
url:url,
data:data,
success : function(data){
data = JSON.parse(data);
fn(data);
},
error:function(data){
console.log(data);
}
});
}
html部分
①搜索模态框
<!--搜索书签模态框-->
<div class="modal fade" tabindex="-1" role="dialog" id="modal-search" aria-labelledby="gridSystemModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header" style="text-align:center;border:none;">
<h4 class="modal-title" id="gridSystemModelLabel">搜索书签</h4>
<h5 style="background-color: #3BB4F2;color: white;display:inline-block;border-radius:10px;padding:3px">支持模糊查询标题</h5>
</div>
<div class="modal-body" style="padding: 0 14%;">
<input type="text" class="form-control search-title" placeholder="标题" required="true"/>
</div>
<div class="modal-footer" style="border:none;padding-right:14%">
<div style="text-align:center;color:green;" id="search-suc-msg" hidden="true">
成功找到<span id="rows-num"></span>条记录
<time class="left-time">3</time>秒后关闭弹窗
</div>
<div id="search-btn-group">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
<button type="button" class="btn btn-btn-default search-sub">提交</button>
</div>
</div>
</div>
</div>
</div>
<!--搜索书签模态框-->
3、遇到的问题
实验一开始是在linux环境下作的,最后是在本地环境重新做的
①一些linux命令
sudo service apache2 start //开启apache服务器
sudo service mysql start//开启mysql数据库
mysql -u root -p root//进入mysql数据库
unzip thinkphp_3.2.3_full.zip //解压tp框架压缩包
wget +网址 //从该网站下载文件
②javascript中json和字符串的转化方法
字符串转化为json: JSON.parse(var)
json转化为字符串:JSON.strify(json)
③file_get_contents($file) 不能用于抓取https页面 导致保存书签时不能正常进行
于是,百度
法一:
在php.ini 文件中
找到 ;extension=php_openssl.dll
去掉分号
https://img-blog.youkuaiyun.com/20170622171140273?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTGlseW5ldHRl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
法二:
待研究
https://img-blog.youkuaiyun.com/20170622170802696?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTGlseW5ldHRl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center
④ 格式化url
preg_match();怎么用???
正则??????????????