我正在使用phpquery从网页中提取一些数据.我需要识别页面的菜单.我的实现是找到sibilings> 0且last-child为的每个元素"a".我的代码是:
foreach($this->doc['*'] as $tagObj){
$tag = pq($tagObj);
if(count($tag->siblings()) > 0){
if($tag->find(":last-child")->tagName === "a")
echo trim(strip_tags($tag->html())) . "<br/>";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我没有得到任何输出因为
$标签 - >找到( ":最后的孩子") - >标签名
哪个没有返回任何东西.这是什么原因?
我只想讨论我们的部署策略并找出其中的差异.这个过程是这样的
- >特定版本的开发完成
- >所有开发人员将他们的文件提交到trunk
- >使用TOAD比较数据库模式并迁移更改
- >在SVN上创建一个新分支
- >使用SVN导出(删除.svn文件夹等)
- >缩小JS,CSS
- >上传到登台服务器
- >执行测试周期
- >修复分支上的错误并验证它们
- >重新缩小JS,CSS [如果需要]
- >上传到生产服务器
- >当我说上传时,它意味着通过SSH将文件上传到/ var/www/html文件夹
- >首先上传js,css,images
- >然后上传php文件
- >上传期间排除目录,如用户上传的图片等.
- >执行测试周期
- >修复错误并再次上传(可能需要重新缩小 - 几个文件)
- >验证错误
- >验证完成
- >将分支提交到svn
- >将更改合并回主干
- > commit trunk [在此部署周期中,没有人将任何文件提交到主干]
这个过程非常复杂,需要很多关注.
关于如何改进它的任何建议?
实际上它有点复杂:
摘要:与DB的连接非常慢.
页面渲染大约需要10秒,但页面上的最后一个语句是一个回声,我可以在firefox中加载页面时看到它的输出(IE是相同的).在谷歌浏览器中,只有在加载完成后,输出才会变为可见.浏览器的加载时间大致相同.
在调试中我发现它的数据库连接正在产生问题.数据库在另一台机器上.进一步调试.我在本地计算机上部署了数据库..所以现在数据库连接在127.0.0.1但连接仍然需要很长时间.
这意味着问题在于APACHE/PHP而不是mysql.但后来我将我的代码部署在另一台远程连接数据库的机器上.一切似乎都很好.
基本上应用程序使用几个mod_rewrite ..但我删除了所有的.htaccess文件,缓慢的连接问题仍然存在..
我在我的机器上安装了另一个APACHE并使用了默认设置.连接仍然很慢.
我添加了以下语句来衡量执行时间
$stime = microtime();
$stime = explode(" ",$stime);
$stime = $stime[1] + $stime[0];
// my code -- it involves connection to DB
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $stime);
echo $totaltime;
Run Code Online (Sandbox Code Playgroud)
输出为0.0631899833679
但是firebug Net面板显示总加载时间为10-11秒.谷歌浏览器的情况也是如此
我试图关闭Windows防火墙..连接仍然很慢
我只是不能找到原因..我已经尝试了多个数据库服务器..多个apach ..似乎没有什么工作..任何想法可能是什么问题?
[编辑]
请仔细阅读评论部分了解更多详情.实际上我认为我即将获得解决方案.基本上我正在开发自己的框架,其中包括通过.htaccess文件重写URL.我添加了几个css和js文件,我注意到没有很好的理由(在Firefox中)为这些文件发送了多个请求.我认为这个问题与CONTENT-LENGTH标题有些相关,因为firefox没有收到这个标题所以它一直在等待内容(可能会有超时)..它与Transfer-Encoding有什么关系:chunked?