2017-05-30 15 views
0

私の英語は謝罪してください。外部のサーバーからPHPでXMLタグが存在するかどうかを確認する方法

私は、特定のサイトマップがあるかどうかを確認するためにこのスクリプト全体を開発したばかりで、Googleが自分の「スパイダーズ」で行ったような、外部のウェブサイトからデータベースに製品を含めるために私のウェブサイト用の一種のsitemap.xmlシステムを開発しています。 xmlには必要なすべてのタグが含まれており、動作します:タグがない場合、スクリプトはエラーを返しますが、すべての "products"に必要なタグがある場合、スクリプトは成功メッセージを返します。

しかし、XMLの外部ファイルに「close」タグがないなどのエラーがある場合、スクリプトは機能しなくなり、エラーが返されます。

結果が「いいえ」の場合は、外部XMLファイルにエラーがないかどうかを確認してから、残りのコードを実行する必要があります。この簡単なスクリプトで解決

<? 
$sitemap = htmlspecialchars(addslashes(stripslashes(strip_tags(trim($_POST['sitemap']))))); 
$ref = htmlspecialchars(addslashes(stripslashes(strip_tags(trim($_POST['ver_id']))))); 
    error_reporting(E_ALL); 
     ini_set('display_errors', '1'); 

     session_start(); 

     include dirname(dirname(__FILE__))."/connectdb.php"; 
    $query = "SELECT * FROM website WHERE `ver_id` = '$ref'"; 
    $result = $mysqli->query($query); 
    /* array asociativo */ 
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
    $url = $row['url']; 
    $long_url = $url.'/'.$sitemap; 
?> 
<?php 
$total = 0; 
$xml=simplexml_load_file("$long_url") or die("Error: Cannot create object"); 
$count = $xml->count(); 
foreach($xml->children() as $producto) { 
    $id = $producto->id; 
    $titulo = $producto->titulo; 
    $descripcion = $producto->descripcion; 
    $fotografia = $producto->fotografia; 
    $precio = $producto->precio; 
    $costo = $producto->costo; 
    $horario = $producto->horario; 
    $tiempo = $producto->tiempo; 
    $cobertura = $producto->cobertura; 
    $keywords = $producto->keywords; 
    $destacar = $producto->destacar; 
    $delivery = $producto->delivery; 

    if (!empty($id) && !empty($titulo) && !empty($descripcion) && !empty($fotografia) && !empty($precio) && !empty($costo) && !empty($horario) && !empty($tiempo) && !empty($cobertura) && !empty($keywords) && !empty($destacar) && !empty($delivery)) { 
     $total = $total + 1; } else { $total = $total - 1; }   
}  
     if($total < $count){ header("Location:/user/sitio.php?id=$ref&mensaje=1"); } else 
      if($total == $count){ 
      $query = "UPDATE website SET sitemap='$sitemap',sitemap_status='active' WHERE ver_id='$ref'"; 
      $result = $mysqli->query($query); 
      header("Location:/user/sitio.php?id=$ref&mensaje=2"); 
      } 
?> 

答えて

0

これは私の開発したスクリプトです!

<? 
$dom = new DOMDocument; 
$dom->Load($long_url); 
if ($dom->validate()) { 
    echo "Valid File"; 
} else { echo "Invalid File"; } 
?> 

ありがとうございました。

関連する問題