希望用PHP开发Web服务(api),为客户提供更轻松的方式来集成我们的平台.有一些工作流程调用将通过user/pass以及一些报告选项进行验证.
抱歉,我无法发布有关该主题的更多详细信息或代码,我从未开发过Web服务,但有使用SOAP的经验.
现在我还需要提供工作流程的状态或状态,我认为REST将是这里的最佳选择,但仍然在寻找意见.
对于报告,我想提供不同的选项,例如XML,Excel/CSV,我会选择其中一个吗?
我应该注意哪些陷阱?
什么是任何人可以提供的宝石.
提前感谢任何帮助,因为这对我来说非常重要.
更新#1:
更新#2:关于数据流的一点点.每个用户都有使用API的信誉,用户之间不共享数据.用法是提交请求,处理请求并返回.没有更新.(想想Google)会发出搜索请求并给出结果,但在我的情况下,只给出了一个结果.不知道这是否需要,所以这是一个FYI.
我刚刚使用集成在netbeans IDE中的xdebug发现了PHP调试,我觉得它很棒!没有它我怎么活着?:)
但是有一个问题:如果我在代码中设置了一个断点,我必须在我到达断点之前按"继续"(F5)几次,因为脚本在每个include()和require()函数处停止.
我的包括看起来像这样:
<?php
require_once('include/config.inc.php');
require_once('include/forms.inc.php');
?>
Run Code Online (Sandbox Code Playgroud)
这是一个错误,还是我可以禁用此行为,所以我不必多次按"继续"?
我在ubuntu 9.10上使用NetBeans 6.9.1
相关链接:
这是我的错误:
ERROR: type "e" does not exist
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
E'SELECT field_1,
CASE WHEN field_2 IS NOT NULL
THEN \'inactive\' ELSE \'active\'
END AS field_status
FROM the_table
')
AS linkresults(field_1 varchar(20),field_2 varchar(8))
Run Code Online (Sandbox Code Playgroud)
如果我使用双引号,则删除单引号的反斜杠转义符,并在SELECT语句之前删除E.
SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
"SELECT field_1,
CASE WHEN field_2 IS NOT NULL
THEN 'inactive' ELSE 'active'
END AS field_status
FROM the_table
")
AS linkresults(field_1 varchar(20),field_2 varchar(8))
Run Code Online (Sandbox Code Playgroud)
我明白了:
NOTICE: identifier "SELECT ..." will be truncated
Run Code Online (Sandbox Code Playgroud)
我也得到了错误,因为我的查询被截断了. …
我有这个正则表达式,但现在需要允许没有小数的数字
// Validate for 2 decimal for money
jQuery.validator.addMethod("decimalTwo", function(value, element) {
return this.optional(element) || /^(\d{1,3})(\.\d{2})$/.test(value);
}, "Must be in US currency format 0.99");
Run Code Online (Sandbox Code Playgroud)
目前这迫使用户至少将.00添加到一个数字,希望它允许当前正则表达式和没有小数的整数.
我会加上吗?在RegEx的下半年结束?
// Validate for 2 decimal for money
jQuery.validator.addMethod("decimalTwo", function(value, element) {
return this.optional(element) || /^(\d{1,3})(\.\d{2})?$/.test(value);
}, "Must be in US currency format 0.99");
Run Code Online (Sandbox Code Playgroud)
编辑:
好吧,但如果有人输入1.2怎么办?
Perl有Perl Docs生成器吗?像Java Docs或PHP Documenter之类的东西?
一直在拉我的头发试图找出为什么我的会议在30分钟被终止/杀死/摧毁.好吧,看起来基于Debian的系统有一个特殊的cron运行,忽略了所有的php.ini和apache配置,并在30分钟时杀死任何空闲会话.
cron路径: /etc/cron.d/php5
在cron里面:
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs …Run Code Online (Sandbox Code Playgroud) 所以在大多数当前浏览器中都有Tabs的功能,有没有办法获得Tab索引?
所以标签1在其中打开了www.google.com,标签2中打开了www.google.com,有没有办法识别标签索引是什么?
伪代码:
if($tab == 2) {
alert "Tab 2 is active\n";
}
if($tab == 1) {
alert "Please use Tab 2 as this is Tab 1\n";
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,我搜索的所有关于标签的内容都与网页本身的标签索引相关,叹息......
这只给我最后一个字符(数字),但我需要整个数字字符串
SELECT substring('123 Main Street' FROM '%#"[0-9]#"%' FOR '#')
Run Code Online (Sandbox Code Playgroud)
这给了我相同的结果,但我需要它返回一个空值:
SELECT substring('Main 123 Street' FROM '%#"[0-9]#"%' FOR '#')
Run Code Online (Sandbox Code Playgroud)
注意:Postgres 7.4
有用的链接:http://www.postgresql.org/docs/7.4/static/functions-matching.html
更新:
SELECT substring('Main 123 Street' FROM '[0-9]+')
SELECT substring('123 Main Street' FROM '[0-9]+')
Run Code Online (Sandbox Code Playgroud)
更新2:
几乎拥有它:
如果它不以数值开头,这给了我想要的结果:
SELECT
COALESCE(substring('Main 123 Street' FROM '[0-9]*') || 'Main 123 Street', ''),
substring('Main 123 Street' FROM '[0-9]*')
Run Code Online (Sandbox Code Playgroud)
但这给了我两个,我只想要第二个条件:
SELECT
COALESCE(substring('123 Main Street' FROM '[0-9]*') || '123 Main Street', ''),
substring('123 Main Street' FROM …Run Code Online (Sandbox Code Playgroud) 任何人都可以推荐使用滑动手势触发水平Jquery卷轴的最佳方法吗?
我们有一个工作网络版本,我们想在我们的Android网站上实现,但不知道解决这个问题的最佳方法.
我们基本上想要使用类似于通过滑动手势触发的这些示例(http://caroufredsel.frebsite.nl/)的滚动列表?
感激地收到任何建议或备用版本.
干杯保罗
不确定标题是否正确,如果你想到一个更好的标题,请编辑.
我有一个XMLRPC服务,我从命令行调用.它使用Zend框架.
客户端看起来像这样:
$ server = new Zend_XmlRpc_Client('http://hostname/path/to/xmlrpc.server.php');
该文件位于:
/var/www/html/path/to/xmlrpc.server.php
Run Code Online (Sandbox Code Playgroud)
我现在对它进行了硬编码,但希望通常填充'path/to /'.
我试过了:
function url(){
$protocol = $_SERVER['HTTPS'] ? "https" : "http";
return $protocol . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
}
echo url();
Run Code Online (Sandbox Code Playgroud)
注意:$ _SERVER选项都没有返回我需要的内容
但是从命令行执行此操作会给我:
http://
Run Code Online (Sandbox Code Playgroud)
也getcwd()给我:
/var/www/html/path/to
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到:
http://path/to
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我想这样做的原因是如果项目需要更改它应该自动配置的目录.例:
如果我在这里移动项目:
/var/www/html/path/to/another/location
Run Code Online (Sandbox Code Playgroud)
或者在这里:
/var/www/public_html/path/to/another/location
Run Code Online (Sandbox Code Playgroud)
甚至在这里:
/path/to/document/root/path/to/another/location
Run Code Online (Sandbox Code Playgroud)
我应该得到:
http://hostname/path/to/another/location
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
更新:
我尝试了这个,但仍未按预期工作:
$hostname = `hostname`;
echo 'http://'.trim($hostname).'/'.basename(getcwd())."\n";
Run Code Online (Sandbox Code Playgroud) php ×5
jquery ×2
postgresql ×2
regex ×2
sql ×2
apache ×1
browser ×1
browser-tab ×1
command-line ×1
conditional ×1
dblink ×1
debian ×1
debugging ×1
escaping ×1
javascript ×1
mobile ×1
netbeans ×1
perl ×1
rest ×1
session ×1
soap ×1
swipe ×1
url ×1
validation ×1
web-services ×1
xdebug ×1
xml ×1