小编Phi*_*ord的帖子

可以为开发Web服务提供哪些陷阱/技巧

希望用PHP开发Web服务(api),为客户提供更轻松的方式来集成我们的平台.有一些工作流程调用将通过user/pass以及一些报告选项进行验证.

抱歉,我无法发布有关该主题的更多详细信息或代码,我从未开发过Web服务,但有使用SOAP的经验.

现在我还需要提供工作流程的状态或状态,我认为REST将是这里的最佳选择,但仍然在寻找意见.

对于报告,我想提供不同的选项,例如XML,Excel/CSV,我会选择其中一个吗?

我应该注意哪些陷阱?

什么是任何人可以提供的宝石.

提前感谢任何帮助,因为这对我来说非常重要.

更新#1:

  • 什么是最安全的方法?
  • 什么是最灵活的方法(独立于平台)

更新#2:关于数据流的一点点.每个用户都有使用API​​的信誉,用户之间不共享数据.用法是提交请求,处理请求并返回.没有更新.(想想Google)会发出搜索请求并给出结果,但在我的情况下,只给出了一个结果.不知道这是否需要,所以这是一个FYI.

php xml rest soap web-services

11
推荐指数
1
解决办法
393
查看次数

PHP Netbeans:xdebug在每个include()或require()上停止

我刚刚使用集成在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

php debugging netbeans xdebug

11
推荐指数
1
解决办法
3330
查看次数

postgres dblink转单引号

相关链接:

这是我的错误:

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)

我也得到了错误,因为我的查询被截断了. …

sql postgresql dblink escaping

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

jQuery US货币验证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)

目前这迫使用户至少将.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怎么办?

regex validation jquery

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

Perl有类似Java/PHP Docs的东西吗?

Perl有Perl Docs生成器吗?像Java Docs或PHP Documenter之类的东西?

perl documentation-generation

10
推荐指数
3
解决办法
3376
查看次数

基于Debian的系统会话在30分钟内在特殊的cron中被杀,如何覆盖?

一直在拉我的头发试图找出为什么我的会议在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)

php apache session debian session-timeout

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

获取浏览器选项卡索引/ ID

所以在大多数当前浏览器中都有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)

有趣的是,我搜索的所有关于标签的内容都与网页本身的标签索引相关,叹息......

javascript php browser browser-tab

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

仅当字符串以数字值开头时才选择字符串的数字部分

这只给我最后一个字符(数字),但我需要整个数字字符串

SELECT substring('123 Main Street' FROM '%#"[0-9]#"%' FOR '#')
Run Code Online (Sandbox Code Playgroud)
  • 结果:3
  • 期待:123

这给了我相同的结果,但我需要它返回一个空值:

SELECT substring('Main 123 Street' FROM '%#"[0-9]#"%' FOR '#')
Run Code Online (Sandbox Code Playgroud)
  • 结果:3
  • 期待:

注意: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)
  • 两人现在都回归:123
  • 还需要跳过或返回完整字符串:'Main 123 Street'

更新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)

regex sql postgresql conditional

10
推荐指数
2
解决办法
3万
查看次数

水平滚动 - 移动 - 滑动?

任何人都可以推荐使用滑动手势触发水平Jquery卷轴的最佳方法吗?

我们有一个工作网络版本,我们想在我们的Android网站上实现,但不知道解决这个问题的最佳方法.

我们基本上想要使用类似于通过滑动手势触发的这些示例(http://caroufredsel.frebsite.nl/)的滚动列表?

感激地收到任何建议或备用版本.

干杯保罗

mobile jquery swipe jquery-mobile

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

从命令行执行获取Apache Document Root(无浏览器)

不确定标题是否正确,如果你想到一个更好的标题,请编辑.

我有一个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 url command-line

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