小编mik*_*725的帖子

PHP:如何确定浏览器是否支持PHP中的javascript?

我正在构建一个AJAX深度链接的站点.

如果用户尝试使用Javascript不支持的浏览器访问该站点或者它是搜索爬虫,我希望PHP加载页面的所有HTML代码.基本上PHP将返回整个页面.

相反,当用户尝试使用支持Javascript的浏览器访问该站点时,我希望PHP只返回模板代码,让Javascript(AJAX)处理剩下的事情.基本上PHP只会加载设计元素,让Javascript用内容填充它们.

我查看了PHP的get_browser()功能,但它似乎不是一个可靠的工具.什么是行业的做法,看看浏览器是否支持Javascript,或者它是使用PHP的搜索爬虫?


背景:

为什么我希望该网站有此行为.

由于我只想通过加载地址来加载主页:example.com,它不向PHP发送任何查询,PHP返回主页的HTML代码.但是,当用户尝试加载以下页面时,这会导致问题:example.com#foo.因此,对于此示例,PHP将返回主页,并且一旦加载主页,Javascript(AJAX)将更改内容以便它显示正确的内容#foo.这将使用户看到主页,因此加载时间将变慢并且用户体验将不会那么好.但是,如果我的PHP脚本可以弄清楚,如果使用Javascript支持的浏览器试图加载页面,它将只返回网站的模板,该模板没有内容)并且javascript将使用内容填充该模板应该为#foo显示.另一方面,如果Javascript非分离浏览器或爬虫将尝试访问该页面example.com#foo,则将返回主页.

我正在使用SWFaddress(http://www.asual.com/swfaddress/)库进行深层链接.


编辑

感谢你们.我以前没想过<noscript></noscript>用过.

这是我决定做的.PHP默认情况下会加载诸如example.com或之前的页面example.com#foo(example.com从PHP的角度来看基本上是相同的,因为定义的片段不会发送到服务器)空白(只是可视化模板),<noscript>主页内容中包含标签.这样,使用javascript的用户将无法看到主页,AJAX将根据#foo片段填充页面内容.另一方面,搜索爬虫和没有javascript的用户将看到主页.

再次感谢你.我认为这是非常简单和优雅的解决方案.如果您有任何进一步的建议,请发表评论或其他答案.

javascript php ajax deep-linking

5
推荐指数
1
解决办法
2779
查看次数

如何构建cms的用户权限

我正在创建一个自定义摄影CMS系统,需要实现用户身份验证和权限系统.在创建此类模式时,业界通常采用的做法是什么?

基本上我需要有用户,而用户可以是不同类型的.有些用户可以说只能创建画廊,其他用户只能编辑它们,或者只编辑某些画廊等等.那么应该如何构建它.我正在使用MySQL数据库,我正在使用PHP来编写CMS代码.

我尝试在Google上查找但是只找到了解释如何为实际MySQL数据库创建用户的文章.我将欣赏一篇文章的链接,该文章解释了应该如何完成这类工作.

先感谢您.

php database authentication permissions structure

5
推荐指数
1
解决办法
3776
查看次数

学习PHP安全性和框架概念

我是计算机科学专业的学生.我知道有一种说法"不要重新发明轮子"然而我觉得真正学习东西的最好方法就是从头开始写东西.然而,当理解这个想法时,开始使用业内成熟的工具.

到目前为止,我的PHP Web应用程序从PHP的角度来看相对简单,所以我正在尝试学习安全和框架概念等新的前沿.我为初学者阅读了这本 PHP安全手册.关于在行业中学习更先进的安全方法的其他建议是什么?还有什么是关于学习更高级的PHP功能以及如何正确实现它们的建议,例如URL重写(自Apache负责实际重写以来重写的处理),以及PHP开发人员必须学习的任何其他主题(或Web开发人员 - PHP,Python,Ruby等)?

php

5
推荐指数
1
解决办法
702
查看次数

PHP中的文本版本控制与差异突出显示

如果您曾在StackOverflow上编辑过一个问题,您可能已经注意到它会跟踪应用于问题的确切更改.它通过突出显示已删除的文本的红色部分以及在特定编辑时添加的绿色而以表格形式显示.我的问题是如何自己实现这样一个系统.我正在尝试使用MySQL在PHP中创建自定义CMS,这似乎是一个非常酷的功能来解决.

任何建议或者可能有开源库已经可以做到这一点我可以分析它们是如何做到的?

示范

在这里,我添加了一些文本,如果您单击编辑链接以查看更改,将显示绿色.

php version-control

5
推荐指数
2
解决办法
1691
查看次数

在Virtualenv中的Mac OS Lion上安装SciPy

我想在我的vertualenv上安装scipy.

Python中使用的virtualenv:

(Django)miki725mac:Django miki725$ python
Python 2.7.2 (default, Aug  3 2011, 00:58:00) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
Run Code Online (Sandbox Code Playgroud)

我尝试通过这样做安装scipy失败:

$ svn co http://svn.scipy.org/svn/scipy/trunk scipy
$ python setup.py build
$ python setup.py install
Run Code Online (Sandbox Code Playgroud)

然后我尝试了:

$ pip install scipy
Run Code Online (Sandbox Code Playgroud)

根据我尝试的建议:

$ pip install -e git://github.com/scipy/scipy@effa6f68f8ada57b7986#egg=scipy-dev
Run Code Online (Sandbox Code Playgroud)

日志

以下是所有安装步骤的完整日志:(它们对于stackoverflow来说太长了)

python setup.py build

http://www.diglo.com/download/3dfc7a1af18617d7ee49faa8bea3464703ea

python setup.py install

http://www.diglo.com/download/ab13985c76ad709b25464fa1254daa4b03ea

pip install scipy

http://www.diglo.com/download/9e808fe5b57b6b01a8265d4b01958da703ea(引擎收录:http://paste.pocoo.org/show/454004/)

pip install -e …

python macos install scipy

5
推荐指数
2
解决办法
3798
查看次数

SQLAPI++ 的免费替代品?

是否有SQLAPI++ 的免费(也可能是开源)替代品?这个库看起来很不错,但它不是免费的。

c++ database api

5
推荐指数
1
解决办法
6706
查看次数

如何在github源浏览中完成AJAX?

Github有一个非常好的源浏览器.在repo中的不同路径之间导航会生成ajax调用以加载内容(您可以在firebug日志中清楚地看到).ajax调用返回要显示的新文件列表的html.除了更改文件的视图列表之外,URL也会更改.但是它不使用像大多数ajax深度链接网站那样的片段(使用#).在github,整个网址都会发生变化.

例如,在https://github.com/django/django上的django repo 转到django文件夹将生成ajax请求,https://github.com/django/django/tree/master/django?slide=1&_=1327709883334该请求将返回该文件夹的html内容.该链接也将更改为https://github.com/django/django/tree/master/django.如您所见,此新链接不使用片段.

怎么做的?我一直认为基于ajax的网站必须使用url片段(#)来实现深层链接,但显然并非如此.

javascript ajax dom github deep-linking

5
推荐指数
2
解决办法
1345
查看次数

Richardson-Lucy算法如何工作?代码示例?

我想弄清楚解卷积是如何工作的.我理解它背后的想法,但我想了解一些实现它的实际算法 - 算法将带有点样本函数(模糊内核)的模糊图像作为输入,并产生潜像的输出.

到目前为止,我发现了Richardson-Lucy算法,其中数学似乎并不那么困难,但我无法确定实际算法是如何工作的.在维基百科,它说:

这导致了一个方程式,可以根据... 迭代求解.

但是它没有显示实际的循环.任何人都可以指向我解释实际算法的资源.在Google上,我只设法找到使用Richardson-Lucy作为其中一个步骤的方法,而不是实际的Richardson-Lucy算法.

任何语言或伪代码中的算法都会很好,但是如果有一个在Python中可用,这将是惊人的.

Thanx提前.

编辑

基本上我想弄清楚的是模糊图像(nxm):

x00 x01 x02 x03 .. x0n
x10 x11 x12 x13 .. x1n
...
xm0 xm1 xm2 xm3 .. xmn
Run Code Online (Sandbox Code Playgroud)

以及用于获取模糊图像的内核(ixj):

p00 p01 p02 .. p0i
p10 p11 p12 .. p1i
...
pj0 pj1 pj2 .. pji
Run Code Online (Sandbox Code Playgroud)

Richardson-Lucy算法中的确切步骤是为了找出原始图像.

python algorithm image-processing convolution

5
推荐指数
2
解决办法
1万
查看次数

如何在python/django中分叉进程?

然而,在django的上下文中,这更像是一般的Python问题.

现在我在django中有这个视图,它必须处理大量数据.通常它需要服务器(使用django在代理中运行的nginx)几分钟才能完成.有时服务器超时.我不想增加nginx的超时时间.我意识到,如果我可以在django视图中在python中派生一个进程,以便forked(子)进程将独立于django视图执行所有数据处理,那么视图将能够立即将请求返回给用户(因此永远不会超时)并且子进程将在后台继续运行以完成所有计算.

所以这是一个问题:

如何在python中分叉一个独立的进程(如果可能的话,python代码在同一个文件中)?如果可能的话,我如何为其分配unix进程优先级?

我看了一些在python中分支进程的方法,似乎有一些选项.哪一个最适合这种情况?

谢谢.

python django subprocess process

4
推荐指数
1
解决办法
3031
查看次数

结合使用Census Bulk Geocoder和python请求库

我正在尝试进行人口普查地理编码API 文档

以下curl命令有效:

curl --form addressFile=@Addresses.csv --form benchmark=9 http://geocoding.geo.census.gov/geocoder/locations/addressbatch --output geocoderesult.csv
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其移植到python请求时:

url = 'http://geocoding.geo.census.gov/geocoder/geographies/addressbatch'
payload = {'benchmark':9}
files = {'addressFile': ('Addresses.csv', open('Addresses.csv', 'rb'), 'text/csv')}
r = requests.post(url, files=files, data = payload)
print r.text
Run Code Online (Sandbox Code Playgroud)

我显然不是在发送格式正确的请求,而只是在响应中收到“存在内部错误”。知道我在提出此请求时做错了什么吗?

python geocoding census python-requests

4
推荐指数
1
解决办法
1581
查看次数