是否可以不使用正则表达式?
例如,我想检查一个字符串是否是一个有效的域:
domain-name
abcd
example
Run Code Online (Sandbox Code Playgroud)
是有效的域名.这些当然是无效的:
domaia@name
ab$%cd
Run Code Online (Sandbox Code Playgroud)
等等.所以基本上它应该以字母数字字符开头,然后可能会有更多的alnum字符加上连字符.它也必须以alnum角色结束.
如果不可能,你能建议我采用正则表达式吗?
编辑:
为什么这不起作用?我错误地使用了preg_match吗?
$domain = '@djkal';
$regexp = '/^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/';
if (false === preg_match($regexp, $domain)) {
throw new Exception('Domain invalid');
}
Run Code Online (Sandbox Code Playgroud) 我正在修补一个域名查找器,并希望赞成那些容易发音的词.
示例:nameoic.com(bad)与namelet.com(好).
是否认为与soundex有关可能是合适的,但看起来我不能用它们来产生某种比较分数.
获胜的PHP代码.
我有一个URL,可以是以下任何格式:
http://example.com
https://example.com
http://example.com/foo
http://example.com/foo/bar
www.example.com
example.com
foo.example.com
www.foo.example.com
foo.bar.example.com
http://foo.bar.example.com/foo/bar
example.net/foo/bar
Run Code Online (Sandbox Code Playgroud)
基本上,我需要能够匹配任何普通的URL.我如何example.com 通过单个正则表达式提取(或.net,无论tld恰好是什么.我需要这个与任何TLD一起工作.)
我的问题可能是愚蠢的,但说实话,我搜索了很多并取得了成功,但并未完成.
我在Windows 8中使用xampp.
我的主机文件如下所示.
127.0.0.1 localhost
127.0.0.1 www.mysite.com
Run Code Online (Sandbox Code Playgroud)
我的httpd-vhosts.config如下所示.
NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1>
DocumentRoot "C:/xampp/htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost 127.0.0.1>
ServerName www.mysite.com
ServerAlias mysite.com
DocumentRoot "C:/xampp/htdocs/mysite"
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这适用于http.但是我启用了ssl.
当我打字http://localhost或者https://localhost,两者都很好.
当我输入http://mysite.com它时,
当我键入https://mysite.com它被重定向为,https://mysite.com/xampp/并显示xampp的默认欢迎页面.
我试过跟踪的事情.
1)而不是使用127.0.0.1,我尝试在httpd-vhosts.conf中使用*:80但结果是相同的.
2)而不是使用127.0.0.1,我尝试在httpd-vhosts.conf中使用*:443但是在重启时apache无法再次启动.
请告诉我如何通过域名而不是使用https或http的localhost访问我的网站.
我正在尝试在我的Sinatra应用程序中获取域名,但作为一个新手我真的很难弄清楚如何做到这一点,我知道它一定是可能的!
Rack::Request#host_with_port 看起来很有前途,但我不知道如何从我的应用程序中获取 - 我如何从我的Ruby代码中获取Rack的东西?
或者还有另一种方式 - 我想我每次发生请求时都不想这样做(虽然它不是太糟糕),但我认为如果我能在应用程序中执行一次会更好加载.
任何提示?
如何找到在具有不同域名的不同服务器上运行的php版本?(比如www.abc.com)这不是我的服务器,没有使用此代码制作php文件的ftp访问:
<?php
echo PHP_VERSION;
?>
Run Code Online (Sandbox Code Playgroud) 不确定这是否最适合程序员,服务器故障或堆栈溢出.然而,这并不是关于Facebook开发的问题.

Facebook 最近宣布与Spotify进行更紧密的整合.控制Spotify桌面软件的播放/暂停按钮已添加到Facebook,最新版本的Spotify客户端运行本地Web服务器.Facebook拨打电话,例如:
http://1234.spotilocal.com:4380/remote/status.json
http://1234.spotilocal.com:4380/remote/play.json
http://1234.spotilocal.com:4380/remote/pause.json
Run Code Online (Sandbox Code Playgroud)
... *.spotilocal.com解决的地方127.0.0.1.
拥有解析为localhost的域名有什么好处?如果某些内容破裂,Spotify可以快速对该域名进行代码更改,那么不必依赖Facebook吗?
Facebook似乎可以轻易指出:
http://127.0.0.1:4380/remote/status.json
Run Code Online (Sandbox Code Playgroud) 我意识到这个问题可能对一些人没有意义,但我只是好奇为什么域名从最具体的特定结构开始并以大多数全局标识符结束.
www.google.com
[最具体].[第二级].[顶级]
所有其他树遍历格式,语法约定和标识符(至少是我所知道的)从最全局的命名空间开始,以最特定的节点结束.
所以我想我的问题是,通过向后指定这些域名的特殊处理背后是否有任何生产性原因,或者只是通过投掷硬币来决定?
编辑:
更多前瞻性约定的例子:
后向约定的示例:
当寻址更容易识别并且在本地范围内更频繁地发生时,最具体的第一个是有意义的.
混合订单:
我已经设置了一个新的域和Web服务器,以及一个CloudFront分发服务器.
CloudFront在其自己的域上成功提供该站点:d1lnegrqin0up5.cloudfront.net
我希望mpe.io(没有www)转到Web服务器,www.mpe.io转到CloudFront分发.因此,我为www.mpe.io设置了指向上述CloudFront域的CNAME记录.
我给了它几个小时,www.mpe.io转到CloudFront(在结果页面上显示"由cloudfront生成")但是所有请求都很简单,导致错误的请求错误.
请注意,如果我直接进入CloudFront域,一切正常.如何以与CloudFront域相同的方式使www.mpe.io成功提供文件?
具体细节:
域DNS记录:
分配设置: