一段时间以来,我一直在寻找一个代码,使用PHP从字符串中获取URL.我基本上试图从消息中获取缩短的URL,然后再执行HEAD请求以查找实际链接.
任何人都有从字符串返回URL的代码?
提前致谢.
编辑鬼狗:
以下是我正在解析的示例:
$test = "I am testing this application for http://test.com YAY!";
以下是我得到的解决方案:
$regex = '$\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$i';
preg_match_all($regex, $string, $result, PREG_PATTERN_ORDER);
$A = $result[0];
foreach($A as $B)
{
    $URL = GetRealURL($B);
    echo "$URL<BR>";    
}
function GetRealURL( $url ) 
{ 
    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER         => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING       => "",
        CURLOPT_USERAGENT      => "spider",
        CURLOPT_AUTOREFERER    => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT        => 120,
        CURLOPT_MAXREDIRS      => 10,
    ); 
    $ch      = curl_init( $url ); 
    curl_setopt_array( $ch, $options …是否有一个版本的 PHP 数组类,其中所有元素都必须是不同的,例如 Python 中的集合?
所以,我编写了一段时间(2年),我有一个非常主观的问题:
使用$ _REQUEST数据是错误的吗?
这主要涉及到认证方式.
如果您考虑数据可以出现的3种方式$_REQUEST,它可以来自cookie,表单或查询字符串.现在,我知道大多数人直接从任一抢信息$_POST或者$_GET使用$_COOKIE,只有当他们正期待一个cookie.
我的理论是,实际上,这些数据应该没有任何区别,如果你更换$_POST或$_GET使用它,它不应该有任何区别$_REQUEST.
如果您正在验证用户进入系统,它真正重要的,如果认证细节都包含在中$_POST或$_GET数组?哎呀,如果他们中的$_COOKIE任何一个都可能无关紧要.他们仍然会为您提供登录站点的凭据,您应该检查其是否正确,如果是,请将其登录.
现在,如果您尝试使用通过查询字符串提交数据的登录表单,我确实意识到存在安全问题,但我不认为这与问题有关.此外,如果某人登录失败次数过多,则应设置适当的限制以避免服务器过载.
我想在此就此发表意见.
社区Wiki为了好的衡量标准.
哦,顺便说一句,如果您有其他问题,请参阅其他StackOverflow问题 $_REQUEST
为什么我应该使用$ _GET和$ _POST而不是$ _REQUEST? 何时以及为什么要使用$ _REQUEST而不是$ _GET/$ _POST/$ _COOKIE?
我习惯于以"正常"方式命名我的会话变量,有点像我想跟踪用户详细信息时,我将它们命名为:
$_SESSION['username']$_SESSION['email'] $_SESSION['id']当我在同一浏览器中浏览网站时,我担心它们可能与其他会话数据冲突,或者根本没有任何冲突(一旦我尝试使用相同的会话变量同时运行我的两个项目,在同一台服务器上,显然,事情变得非常混乱).
我开发了一个网站www.tenxian.com.
它有三种语言版本,英语,日语和中文.如何编写有效的PHP程序,可以根据访问者的IP地址自动选择语言版本?
如果我使用"if-else",代码将会非常复杂; 如果我使用switch-case,如何写它,因为应该处理的数据是IP范围,而不是特定的数字.此外,我不知道这些IP范围
最简单的方法是什么?
<div style='width:500px; height:500px; padding:50px;'> </div>
由于IE和Firefox上"填充"的行为不同.解决这个问题的最佳方法是什么?
我需要找到一个基于 PHP 的 HTML(如 WC3-Like)验证器,它可以查找无效的 HTML 或 XHTML。我在谷歌上搜索了一下,但很好奇是否有人使用过他们特别喜欢的。
我有一个字符串中的 HTML:
$html = "<html><head>.....</body></html>";
我希望能够测试该页面并让它返回错误。(不回显/打印任何内容)
我见过:
- http://www.bermi.org/xhtml_validator
 
- http://twineproject.sourceforge.net/doc/phphtml.html
这样做的背景是我想要一个在每个页面上运行的函数/类,检查文件自上次访问日期(或类似的内容)以来是否已被修改,如果没有,运行验证器,以便我在编码时立即收到无效 HTML 的通知。
我计划在我的WPF应用程序中添加对许多键盘上的后退和前进按钮的支持,但我很难让它们工作.
我尝试过使用标准的KeyBinding来浏览BrowserBack和BrowserForward,没有任何乐趣.我用ESC键测试了代码,以确保它在原理上工作,并且该密钥很好.
Nextup我处理了KeyUp事件,但是发送的密钥是"System",这是没用的,如果我使用KeyInterop.VirtualKeyFromKey,我只返回0.
我开始认为PInvoke /陷阱真正的窗口消息将是唯一的选择,但我宁愿避免,如果有人有任何好主意?
哦,钥匙本身肯定会工作,我的键盘插入;-)
更新:他们建议使用SystemKey让我明白我可以使用它:
new KeyBinding(TestCommand, new KeyGesture(Key.Left, ModifierKeys.Alt));
这似乎适用于键盘按钮,但它不适用于相应的触摸"轻弹"(模拟下一个和后面).这些电影在浏览器中运行良好,但根据我的KeyUp事件,他们发送的所有内容都是"LeftAlt"而不是其他内容!
**再次更新**:Rich的评论让我这样:
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseBack, BrowseBack_Executed));
this.CommandBindings.Add(new CommandBinding(NavigationCommands.BrowseForward, BrowseForward_Executed));
这似乎是一种享受...也轻弹!
我目前在我的网站上设置节点,每个节点属于特定菜单(不是主要或辅助预建的菜单).
如何找出节点属于哪个菜单?