seçiciyi form olarak belirtince içerisinde yer alan tüm inputları zaten seçer, sorunu detaylandırmanı ve mümkünse kod eklemeni tavsiye ederim.
önce keşke dökümanı inceleseydiniz, kullanımınız bir çok farklı açıdan yanlış.
bu benim hazırladığım durumu en yalın haliyle özetleyen kod
$xml = new SimpleXMLElement('https://korfezotoyedekparca.site/martas1.xml', LIBXML_PARSEHUGE, true);
$urun = $xml->xpath('//Products');
print_r($urun);
hatan ise, ürünleri okumak değil, anahtarlarını kullanarak ürün oluşturmaya çalışmak. başlangıcın böyle olmalı. örnek kodda tüm ürünlerin bilgileri ve xml nitelikleri mevcut. istediğiniz şekilde oluşturabilirsiniz. ürünleri oluştururken döngüye almanız gerekiyor, okurken değil.
php'nin kendi sitesindeki örneği ise;
function RecurseXML($xml,$parent="")
{
$child_count = 0;
foreach($xml as $key=>$value)
{
$child_count++;
if(RecurseXML($value,$parent.".".$key) == 0) // no childern, aka "leaf node"
{
print($parent . "." . $key . " = " . $value . "<BR>\n");
}
}
return $child_count;
}
döküman adresi https://www.php.net/manual/tr/class.simplexmlelement.php
ben kullanmadım. ama yasadışı herhangi bir iş yapmayacaksan ve alanadın varsa, 4gb ram, 2cpu, limitsiz trafikli paylaşımlı linux hostingimi ücretsiz olarak 2 aya kadar (süresi o kadar kalmış, 2 senedir kullanmıyorum) kullanman için alanadını tanımlayabilirsiniz eğer isterseniz.
atob('Y3BuczEudHVyaG9zdC5jb20KY3BuczIudHVyaG9zdC5jb20=');
reklama girmesin dedim : ) olur derseniz alanadınızın name server'ını değiştiriniz, bende hosting'e ekleyip ftp ve mysql hesabı açıp bilgileri iletirim.
https://prototurk.com/soru/5808-css-scss-ic-ice-transition-kullanim-sorunu şu konudan sonra css konularından uzak duruyorum. sadece mantığı hakkında bilgi vereyim istedim yinede.
resimdeki örnek için, gradient kullanacaksınız. bunda açıda da yok, righ to şeklinde ilerlemiş. şeffaf beyaz.
bir örnek hazırladım, https://codepen.io/Munzevi/pen/NWYredZ burdan yola çıkarak devam et. resimdeki gibi istiyorsan progressbar'ın ilk divi olan ".progress" sınıfının background'u da düzenlemen gerekiyor. onuda progress-bara yaptığın arkaplanın aynın yine şeffaf, diğer rengi ise örneğin %10 opaklık da siyah olanını yapacaksın.
edit: ben hazırlarken, bir arkadaş daha hazırlamış. görsem hazırlamazdım.
javascript için id her zaman ilk gelendir. seçiçi hiyerarşisi üzerine araştırma yapmanı tavsiye ederim. css hiyerarşisi olarak araştırırsan daha çok kaynağa ulaşabilirsin, html ve javascript de dahildir bu hiyerarşiye. ayrıca bu tarz bir kullanımda class bile versen, yine ilk geleni seçerdi. spesifik bir tanım yapmak için ilişkilendirebileceğin bir mantık olmalı. input > myselect
gibi
böyle bir şey olamaz ya :D kod gözüme çok karmaşık geldi, biraz düzenleyip biraz da kısaltayım dedim. kısalmadı ahah, üstüne 5-6 satır daha fazla oldu boşlukları sildiğim halde.
soruyu anlaması zor, daha detaylı ve teknik sorarsan daha iyi yardımcı olabiliriz. sanırım son döngüde ki gelen değerler ile alakalı bazı nitelikleri almak istiyorsun. ama böyle olmaz, birde resimden kod çıkartıp xml mi parçalayacağız? xml'i eklemen lazım.
function ara($bas, $son, $yazi){
@preg_match_all('/' .preg_quote($bas, '/').'(.*?)'. preg_quote($son, '/').'/i', $yazi, $m);
return @$m[1][0];
}
if(isset($_FILES['dosya'])){
$hata = $_FILES['dosya']['error'];
if($hata != 0) {
echo 'Yüklenirken bir hata gerçekleşmiş.';
}else{
$boyut = $_FILES['dosya']['size'];
if($boyut > (1024*1024*3)){
echo 'Dosya 3MB den büyük olamaz.';
}else{
$elementler = [
"unvan" => 'cbc:Name',
"adres" => 'cbc:StreetName',
"sirketMahalle" => 'cbc:CitySubdivisionName',
"sirketSehir" => 'cbc:CityName',
"faturaNo" => 'cbc:ID',
"vergiDairesi" => ['<cac:TaxScheme><cbc:Name>', '</cbc:Name></cac:TaxScheme>'],
"vergiNo" => ['<cbc:ID schemeID="VKN">', '</cbc:ID>'],
"faturaAciklama" => 'cac:Item',
"urunTutar" => 'cac:Price>',
"toplamTutar" => ['<cbc:PriceAmount currencyID="TRY">', '</cbc:PriceAmount>']
];
$uzanti = preg_replace('/.*?\.(.*)$/', '$1', $dosya);
$dosya = $_FILES['dosya']['tmp_name'];
copy($dosya, 'dosyalar/'.$_FILES['dosya']['name']);
echo '<br>Dosyanız upload edildi!';
$icerik = file_get_contents($dosya);
$sonuc = array();
foreach($elementler as $key => $e){
$sonuc[$key] = is_string($e) ? ara("<$e>", "</$e>", $icerik) : ara($e[0], $e[1], $icerik);
}
//echo str_replace('<', '<', $icerik);
echo "
<b>Şirket Ünvanı:</b> {$sonuc["unvan"]}<br>
<b>Şirket Adres:</b> {$sonuc["adres"]}<br>
<b>Şirket Mahalle:</b> {$sonuc["sirketMahalle"]}<br>
<b>Şirket Şehir:</b> {$sonuc["sirketSehir"]}<br>
<b>Fatura Numarası:</b> {$sonuc["faturaNo"]}<br>
<b>Vergi Dairesi:</b> {$sonuc["vergiDairesi"]}<br>
<b>Vergi Numarası:</b> {$sonuc["vergiNo"]}<br>
<b>Fatura Açıklamas:</b> {$sonuc["faturaAciklama"]}<br>
<b>Urun Toplam Tutar:</b> {$sonuc["urunTutar"]}<br>
<b>Fatura Toplam Tutar:</b> {$sonuc["toplamTutar"]}<br>
";
echo strip_tags($sonuc["faturaAciklama"], '<cac:TaxSubtotal>');
//echo strip_tags($sonuc["faturaAciklama"], ['<cac:TaxSubtotal>', '<cbc>']); //çoklu kullanım
//echo strip_tags($sonuc["faturaAciklama"]); //tamamen temizlenmiş
}
}
}
yukarıdaki de söz de daha okunaklı yaptığım hali : )
hızlı çözüm istersen
strip_tags https://www.php.net/manual/tr/function.strip-tags.php
bu yöntemi bi dene derim, tüm elementleri kaldıracak sadece metinleri bırakacak, belki anlaması kolay olması için bir iki elementi sonra silmek üzere de bırakabilirsin.
ama kalıcı bir çözüm ve kendini geliştirmek istersen, https://www.php.net/manual/tr/class.domdocument.php bu sınıfı öğrenmeni tavsiye ederim. bende yakın zamana kadar preg_match kullanıyordum ve buna geçtim rahatladım.
if ($dil =="tr" || $dil == "en" || $dil == "de" || $dil == "it" || $dil == "fr" || $dil == "nl" || $dil == "sa" || $dil == "es" || $dil == "se" || $dil == "no" || $dil == "bg" || $dil == "fa" || $dil == "jp" || $dil == "fi" || $dil == "be" || $dil == "dk"){
$_SESSION["dil"] = $dil;
header("Location:$sayfa");
}else {
$yonlendiren = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : 'index.php';
header("Location:$yonlendiren");
}
kasten mi yapıyorsun? @tayfunerbilen'in kendisi örnek verdi, öncesinde bende mevcut örneğin olduğu soruya link bıraktım. tamam anlamamış olabilirsin, de güzel insan sinir oldum anlaman için nasıl çalıştığına dair her türlü argümanı verdim. ki html'in rel özelliğine kadar değindim, bu artık top nokta, konuyla alakalı ama gereksiz bir bilgiydi. dil seçtirdiğin sayfanın kodlarını at, düzenleyip ekleyim.
ben bi sorun görmüyorum. düzgün bir şekilde çalışıyor. https://www.doctorsinturkey.com/loc.php?loc=tr adresinden dil seçtikten sonra önceki sayfaya yönlendiriyor. ama kalkıpta https://www.doctorsinturkey.com/loc.php?loc=tr bu linke hiçbir yönlendirme olmadan, doğrudan adres barına yazıp gidersen, bir önceki mesajda bahsettiğim durum yaşanır. senden benden başka kimsede bu linke doğrudan gitmez, site içerisinde tıklayınca zaten referans alınmış oluyor. hala daha anlamamışsın. daha nası örneklendirebilirim bilmiyorum.
https://www.doctorsinturkey.com/eda-akpinar-1 bu adrese gittiğim zaman çıkan dropdown'dan https://www.doctorsinturkey.com/loc.php bu adres üzerinden bir dil seçtiğimde
/*
loc.php
*/
echo $_SERVER['HTTP_REFERER']; //https://www.doctorsinturkey.com/eda-akpinar-1
ama çerezi sildim, doğrudan bu adrese gittiö https://www.doctorsinturkey.com/loc.php?loc=tr;
/*
loc.php
*/
echo $_SERVER['HTTP_REFERER']; //Undefined
$_SERVER['HTTP_REFERER']
etkileşim için yönlendiren olması gerekiyor, adından da anlayacağın gibi yönlendiren bilgisini veriyor. doğrudan erişim yaparsan tabi ki değer vermez. test etmek için,
<a href="site.com/profil">hey, sitede ki profilime baksana!..</a>
not: bazı siteler yönlendirme bilgisi vermemek için, bağlantılar no-ref ekleyebiliyor. o zaman çalışmaz.
<a rel="noreferrer" href="site.com/profil">hey, sitede ki profilime baksana!..</a>