XML API для PHP! Новый разработчик, не знаю, как это сделать - PullRequest
1 голос
/ 24 марта 2012

Простой вопрос, я должен подумать.К сожалению, я не мог понять, как заставить его работать.

У меня есть лист данных xml, который выглядит следующим образом:

<leads>
    <leadDetails>
        <lead_id>3886961</lead_id>
        <campaign_id>1173</campaign_id>
        <campaign_name>Tesco vs Argos - Submit (UK)</campaign_name>
        <subID>N/A</subID>
        <gateway>yes</gateway>
        <ip>109.155.249.140</ip>
        <referring_url>http://adworkmedia.com/gTemplate.php?GID=1514&pubID=2312&sid=&ST=
        </referring_url>
        <date>2012-03-24 07:19:07</date>
        <payout>$0.70</payout>
        <status>Credited</status>
    </leadDetails>
</leads>

Я должен добавить, что этот лист XML не хостинг.на моих серверах, но динамически обновляется по мере получения новой информации от моей сети.Не стесняйтесь задавать мне дополнительные вопросы, если это необходимо.

МОЙ ВОПРОС: Как я могу написать код, который читает страницу XML и загружает для каждого дату, IP-адрес и имя_кампании в mySQLТаблица.

Спасибо!

Ответы [ 4 ]

1 голос
/ 24 марта 2012

JSON был бы лучшим форматом, на мой взгляд, но для XML это довольно просто.

<?php
$con = mysql_connect("username","password","host");
mysql_select_db("database_name",$con);

$xmlObj = new SimpleXMLElement($xml); //replace $xml with your XML string.
foreach($xmlObj->leadDetails as $details){
    $date = $details->date;
    $ip = $details->ip;
    $campaign_name = $details->campaign_name;
    mysql_query("INSERT INTO `table_name` (`date`,`ip`,`campaign_name`) VALUES ('$date','$ip','$campaign_name')",$con);
}
?>
1 голос
/ 24 марта 2012

Просто отправная точка для вашей справки, используя SimpleXML и PDO:

$xml = simplexml_load_file('http://yourhost.com/somefile.xml');
$pdo = new PDO('mysql:dbname=test;host=localhost', 'user', 'pass');
foreach ($xml->leadDetails as $lead) {
    $stmt = $pdo->prepare('INSERT INTO table (createdAt, ip, campaign_name) VALUES (NOW(), ?, ?)');
    $stmt->execute(array(
        $_SERVER['REMOTE_ADDR'],
        $lead->campaign_name
    ));
}
1 голос
/ 24 марта 2012

Привет.

           if( $xml = simplexml_load_file("the_url_of_xml"))
            {
              foreach($xml->leads->leadDetails as $detail) 
              {   
                $camp_id = $detail->campaign_id;
                $camp_name = $detail->campaign_name;
                $sql = "INSERT INTO myTable (id,name) VALUES ('$camp_id','$camp_name')";//AND so on
                mysql_query($sql);
            }

           }
1 голос
/ 24 марта 2012

Это хороший учебник для начала Ссылка на учебник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...