php curl:检查一个网站是否存在,使用textarea输入值作为url?

时间:2014-05-14 11:12:34

标签: php html url curl

我在表单中有一个文本区域框,让用户输入他们的公司注册号,如下所示:

<input type='text' name='creg' id="field_creg">

基本上我想要做的是,当用户在文本区域框中输入注册号时,我想使用这个php curl脚本来检查是否存在url。

<?php
$url = 'http://data.companieshouse.gov.uk/doc/company/$creg';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($ch);
    $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if (200==$retcode) {
      echo "This is a valid Company Number";
    } else {
       echo "This is NOT a valid Company Number";
    }
    ?>

我正在使用公司的房屋URI,您可以输入此网址&#39; http://data.companieshouse.gov.uk/doc/company/&#39;然后是公司编号,告诉你公司是否存在。

如果输入的公司号码有效,它将带您进入公司网站上的信息页面,并告诉您该公司,如果它不存在,它将带您到他们的错误404页面。 PHP curl基本上检查这个结果,如果公司号码有效,它将回显&#34;这是一个有效的公司编号&#34;否则它将回响&#34;这不是有效的公司编号&#34;。

所以现在我想找到一种能够在表单提交之前检索文本或输入到textarea的值的方法,这样我就可以放置&#39; creg&#39; /&#39的值; $ CREG&#39;到网址的末尾看起来像这样:

http://data.companieshouse.gov.uk/doc/company/$creg

所以,如果我将公司号码12345678输入textarea框,那么网址将是

http://data.companieshouse.gov.uk/doc/company/12345678

然而,我试图让它实时检查,因为用户在提交之前将数字输入文本区域。可以这样做吗?

所以最终的结果是,当用户在textarea中键入公司注册号时,它会在输入时说明它是否有效。

如果有人能告诉我这样做的话,我真的很感激,谢谢

2 个答案:

答案 0 :(得分:0)

做实时事情&#39;你需要ajax。

使用jquery进行ajax调用非常简单(和跨平台),因此我会编写需要它的代码。

假设check_valid.php是验证输入的脚本,并在公司编号有效时打印。

$("#field_creg").keypress(function(){
  value = parseInt($(this).val());
  $.ajax({
    type: 'POST',
    url : "check_valid.php",
    data: { 
      'creg': value, 
    },
    success: function(data){
      // Here data is filled with whatever 'check_valid.php' echoes
      //   Show data
    }
  });
});

答案 1 :(得分:0)

您可以通过jquery将$ creg发送到curl.php然后运行curl脚本并获取该号码的信息是否有效。

发送creg数据单击验证按钮:

$("#checkValidCompanyNumberButton").click(function(){
  var creg = $('#creg').val();
  $.post("curl.php",
  {
    creg: creg
  },
  function(data){
    if(data== 1){
       alert('Valid');
    }
    else{
       alert('Not Valid');
    }
  });
});

在curl.php中

<?php
$creg = $_POST['creg'];
$url = 'http://data.companieshouse.gov.uk/doc/company/$creg';
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_exec($ch);
    $retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if (200==$retcode) {
      echo 1;
    } else {
       echo 2;
    }
    ?>