3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $xmlstr = <<<XML <xml> <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); $addr = "http://example.com/?foo=bar&utm_source=&pk_rdm=1235#2&utm_medium=rtb&utm_campaign="; // 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";
Output for 5.4.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
forfait_rtb rtb trafic_payant
Output for 5.2.3 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/vTLP7 on line 235
Process exited with code 255.
Output for 4.4.3 - 4.4.9, 5.1.0 - 5.1.1, 5.1.3 - 5.2.2
<br /> <b>Parse error</b>: syntax error, unexpected '[' in <b>/in/vTLP7</b> on line <b>235</b><br />
Process exited with code 255.
Output for 4.4.2, 5.1.2
<br /> <b>Parse error</b>: syntax error, unexpected '[' in <b>/in/vTLP7</b> on line <b>236</b><br />
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1, 5.0.0 - 5.0.5
<br /> <b>Parse error</b>: parse error, unexpected '[' in <b>/in/vTLP7</b> on line <b>235</b><br />
Process exited with code 255.
Output for 4.3.2 - 4.3.4
<br /> <b>Parse error</b>: parse error in <b>/in/vTLP7</b> on line <b>235</b><br />
Process exited with code 255.