@ 2013-09-25T16:07:33Z <?php
$addr = "http://example.com/?foo=bar&utm_source=google&pk_rdm=1235#2&utm_medium=cpc&utm_campaign=auchan-fil_rouge";
$xmlstr = <<<XML
<xml>
<?xml version='1.0' standalone='yes'?>
<!-- TODO
medium="" (none) (not set)
-->
<medium val="cpa">
<source val="affilinet">
<campaign val="">
<lever3 val="affiliation" />
<lever2 val="affiliation" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
<medium val="cpc"> <!-- uncomplete -->
<source val="">
<campaign val="remarketing">
<lever3 val="sem-remarketing" />
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="bing">
<campaign val="auchan-fil_rouge">
<lever3 val="sem-marque-yahoo_bing" />
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
<campaign val="marque">
<lever3 val="sem-marque-yahoo_bing"/>
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
<campaign val="horsmarque">
<lever3 val="sem-horsmarque-yahoo_bing"/>
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="leguide">
<campaign val="">
<lever3 val="comparateur-leguide" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="google">
<campaign val="marque">
<lever3 val="sem-marque-google" />
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
<campaign val="auchan-fil_rouge">
<lever3 val="sem-marque-google" />
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
<campaign val="horsmarque">
<lever3 val="sem-hors-marque-google" />
<lever2 val="sem" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="google.shopping">
<campaign val="">
<lever3 val="comparateur-google_shopping" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="cherchons">
<campaign val="">
<lever3 val="comparateur-cherchons" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="shopping.cherchons.com">
<campaign val="">
<lever3 val="comparateur-cherchons" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="twenga">
<campaign val="">
<lever3 val="comparateur-twenga" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="achetezfacile">
<campaign val="">
<lever3 val="comparateur-achetez_facile" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
<medium val="organic">
<source val="">
<campaign val="">
<lever3 val="seo" />
<lever2 val="seo" />
<lever1 val="trafic_gratuit" />
</campaign>
</source>
</medium>
<medium val="display">
<source val="">
<campaign val="">
<lever3 val="display" />
<lever2 val="display" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
<medium val="email">
<source val="newsletteraecf">
<campaign val="">
<lever3 val="email-auchanfr" />
<lever2 val="email_auchanfr" />
<lever1 val="email_auchanfr" />
</campaign>
</source>
<source val="magasinauchan">
<campaign val="">
<lever3 val="email_hypers" />
<lever2 val="partenaires_hypers" />
<lever1 val="hypers" />
</campaign>
</source>
</medium>
<medium val="idealo">
<source val="">
<campaign val="">
<lever3 val="comparateur-idealo" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
<medium val="partaenaire">
<source val="">
<campaign val="">
<lever3 val="partenariat" />
<lever2 val="partenariat" />
<lever1 val="trafic_gratuit" />
</campaign>
</source>
<source val="magasinauchan">
<campaign val="">
<lever3 val="partenaire_hypers" />
<lever2 val="partenaires_hypers" />
<lever1 val="hypers" />
</campaign>
</source>
</medium>
<medium val="referral">
<source val="go.leguide.com">
<campaign val="">
<lever3 val="comparateur-leguide" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="webmarchand.com">
<campaign val="">
<lever3 val="comparateur-leguide" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="choozen.fr">
<campaign val="">
<lever3 val="comparateur-leguide" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="r.twenga.fr">
<campaign val="">
<lever3 val="comparateur-twenga" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="twenga.fr">
<campaign val="">
<lever3 val="comparateur-twenga" />
<lever2 val="comparateur" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="">
<campaign val="">
<lever3 val="referents_externes" />
<lever2 val="referents_externes" />
<lever1 val="trafic_gratuit" />
</campaign>
</source>
</medium>
<medium val="retargeting">
<source val="mythings">
<campaign val="">
<lever3 val="retargeting-mythings" />
<lever2 val="retargeting" />
<lever1 val="trafic_payant" />
</campaign>
</source>
<source val="eperflex">
<campaign val="">
<lever3 val="retargeting-eperflex" />
<lever2 val="retargeting" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
<medium val="rtb">
<source val="">
<campaign val="">
<lever3 val="forfait_rtb" />
<lever2 val="rtb" />
<lever1 val="trafic_payant" />
</campaign>
</source>
</medium>
</xml>
XML;
$xml = new SimpleXMLElement($xmlstr);
// Parse the url.
$results = explode("&", explode("?", $addr)[1]);
$tags = array ('utm_medium=', 'utm_source=', 'utm_campaign=');
$sources = array('medium_val' => '', 'source_val' => '','campaing_val' => '');
foreach($results as $result){
foreach($tags as $key => $tag) {
if (($offset = stripos($result, $tag)) !== false)
$sources[$key] = substr($result, strlen($tag));
}
}
$results = $xml->xpath("//medium[@val='{$sources[0]}']/source[@val='{$sources[1]}']/campaign[@val='{$sources[2]}']/*");
$leviers = array("levier3", "levier2", "levier1");
echo $results[0]->attributes()."\n";
echo $results[1]->attributes()."\n";
echo $results[2]->attributes()."\n";
//foreach ($results as $key => $result) {
// echo " {$leviers[$key]} => {$result->attributes()}\n";
//}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for git.master , git.master_jit , rfc.property-hooks Warning: SimpleXMLElement::__construct(): Entity: line 2: parser error : XML declaration allowed only at the start of the document in /in/KZY4u on line 239
Warning: SimpleXMLElement::__construct(): <?xml version='1.0' standalone='yes'?> in /in/KZY4u on line 239
Warning: SimpleXMLElement::__construct(): ^ in /in/KZY4u on line 239
Fatal error: Uncaught Exception: String could not be parsed as XML in /in/KZY4u:239
Stack trace:
#0 /in/KZY4u(239): SimpleXMLElement->__construct('<xml>\n <?xml...')
#1 {main}
thrown in /in/KZY4u on line 239
Process exited with code 255 . This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches Archived branches Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
preferences:dark mode live preview
57.08 ms | 402 KiB | 8 Q