Bunun için çeşitli seçenekleri denenebilirsiniz. Örneğin, aşağıdaki adımları izleyebilirsiniz:
1- VSCode'u açın ve "SFTP: Config" komutunu konsola yazın. Bu komut, SFTP eklentisinin yapılandırma dosyasını açacak ve bu dosyada FTP sunucularını tanımlayabilirsiniz.
2- Yapılandırma dosyasında, FTP sunucularını tanımlayarak istediğiniz sunucudaki dosyaları düzenleyebilirsiniz. Örneğin, aşağıdaki gibi bir yapılandırma dosyası oluşturabilirsiniz:
{
"host": "ftp.example.com",
"username": "username",
"password": "password",
"remotePath": "/public_html"
}
3- Bu yapılandırma dosyasını kaydedin ve "SFTP: Add to Workspace" komutunu kullanarak FTP sunucusunu çalışma alanınıza ekleyin. Böylece VSCode çalışma alanınızda FTP sunucusundaki dosyaları görebilecek ve düzenleyebileceksiniz.
4- FTP sunucusundaki dosyaları düzenlemek için, VSCode çalışma alanınızdaki dosyaları açın ve düzenleme işlemlerinizi gerçekleştirin...
Merhaba! Base64 kodlarını toplu bir şekilde birleştirmek için birkaç yöntem düşünebiliriz. Örneğin, PHP veya JavaScript kullanarak bir döngü oluşturarak tüm Base64 kodlarını bir diziye atayabilir ve daha sonra bu diziyi birleştirip bir dosya olarak kaydedebilirsiniz. Örneğin, PHP'de bir dizi oluşturarak ve döngü kullanarak tüm Base64 kodlarını birleştirebilirsiniz:
// Dizi oluşturun
$base64_codes = array();
// Döngü ile tüm Base64 kodlarını diziye ekleyin
foreach ($base64_codes_to_combine as $code) {
$base64_codes[] = $code;
}
// Diziyi birleştirin ve bir dosyaya kaydedin
$combined_base64_code = implode(",", $base64_codes);
file_put_contents("combined_base64_codes.txt", $combined_base64_code);
Bu örnekte, tüm Base64 kodlarını bir diziye atadık ve daha sonra bu diziyi birleştirdik ve bir dosyaya kaydettik. Bunun yerine, JavaScript kullanarak da benzer bir işlem yapabilirsiniz. Örneğin, aşağıdaki gibi bir döngü kullanarak tüm Base64 kodlarını birleştirebilirsiniz:
let base64_codes = [];
// Döngü ile tüm Base64 kodlarını diziye ekleyin
for (let i = 0; i < base64_codes_to_combine.length; i++) {
base64_codes.push(base64_codes_to_combine[i]);
}
// Diziyi birleştirin ve bir dosyaya kaydedin
var combined_base64_code = base64_codes.join(",");
fs.writeFileSync("combined_base64_codes.txt", combined_base64_code);
Bu kodda, diziye eklenen Base64 kodları dizi döngüsü ile eklenir ve sonra join() metodu ile birleştirilir. Daha sonra, writeFileSync() metodu ile bir dosyaya kaydedilir.
Merhaba,
Bir verinin zamanlı yayınlanmasını sağlamak için öncelikle veriye ekleyeceğiniz bir zaman damgası oluşturmanız gerekiyor. Bu zaman damgasını, veriyi eklediğiniz anda oluşturarak kaydedebilirsiniz. Örneğin PHP kodunuzda bir form ekranı oluşturarak bu form aracılığıyla veri ekleyebilirsiniz. Form içinde bir "Yayınlanma Zamanı" alanı oluşturarak bu alana girilen zamanı verinin yayınlanma zamanı olarak kaydedebilirsiniz.
Daha sonra verileri listeleyen bir sayfada, yayınlanma zamanının geçip geçmediğini kontrol etmeniz gerekiyor. Örneğin, verileri bir SQL sorgusuyla veritabanından çektikten sonra bu verileri listeleyecek bir PHP döngüsü oluşturarak yayınlanma zamanının geçip geçmediğini kontrol edebilirsiniz. Örnek bir kod parçacığı aşağıdaki gibidir:
$veriler = "SELECT * FROM veriler"; // Verileri veritabanından çek
foreach ($veriler as $veri) {
// Verinin yayınlanma zamanını al
$yayinlanma_zamani = $veri['yayinlanma_zamani'];
// Geçerli zamanı al
$simdiki_zaman = date('Y-m-d H:i:s');
// Verinin yayınlanma zamanı geçmiş mi?
if ($yayinlanma_zamani <= $simdiki_zaman) {
// Veri yayınlanabilir
echo $veri['icerik'];
}
}
Bu kod veritabanından verileri çekmektedir. Daha sonra, her verinin yayınlanma zamanını alır ve geçerli zamanla karşılaştırır. Eğer verinin yayınlanma zamanı geçmişse, verinin içeriği ekrana yazdırılacaktır.
Tabii bunu saf php ile yapmamak lazım (artık ajax mı, cron mu yoksa başka bir method mu kullanırsınız orası size kalmış :))
Evet, aşağıdaki gibi bir algoritma düşünebilirsiniz:
1- Kullanıcı bir randevu almak istediğinde, sistem bir tarih ve saat seçimi için bir arayüz sağlar.
2- Kullanıcı seçtiği tarih ve saati girdiğinde, sistem bu bilgileri veritabanına kaydeder ve seçilen tarihteki saat aralığını pasif hale getirir.
3- Sistem, randevu saatinin geldiğini anladığında, randevu saatini kontrol eder ve randevu saatini geçmişse, randevuyu "geçerli" olarak işaretler.
4- Sistem, geçerli olarak işaretlenmiş randevuları kontrol eder ve bu randevular için saat aralığını tekrar aktif hale getirir.
Bu şekilde bir algoritma, randevuları daha gelişmiş bir şekilde yönetmenize yardımcı olabilir. Örneğin, randevuların geçerliliğini kontrol ederek, pasif hale getirilen saat aralıklarını daha doğru bir şekilde aktif hale getirebilirsiniz.
PayTR CallBackUrl için, öncelikle uyeId bilgisini bir query parametresi olarak URL'ye eklemeniz gerekmektedir.
Örneğin:
(https://www.example.com/bakiye-yukleme?siparisNo=12345 &uyeId=98765)
Bu sayfa üzerinden işleminizi gerçekleştirin ve işlem sonucunda, uyeId bilgisini kullanarak bakiye tablosundaki kaydı güncelleyebilir ve üye'ye işlem geçmişi sunabilirsiniz.
Örnek olarak, aşağıdaki adımları takip edebilirsiniz:
1- Öncelikle bakiye yükleme sayfasına erişmek için bir URL oluşturun ve query parametrelerini ekleyin.
Örnek URL: (https://www.example.com/bakiye-yukleme?siparisNo=12345 &uyeId=98765)
2- Bu URL'yi payTR'ye göndererek, işlemi başlatın ve üye'nin ödeme yapmasını sağlayın.
3- PayTR tarafından gönderilen CallBackUrl üzerinden işlem sonucunu kontrol edin.
Örnek Kod:
// CallBackUrl üzerinden gelen parametreleri alın
$siparisNo = $_GET['siparisNo'];
$uyeId = $_GET['uyeId'];
// Bakiye tablosundaki kaydı güncelleyin
$bakiye = Bakiye::find($uyeId);
$bakiye->tutar += $siparisNo;
$bakiye->save();
// Üye'ye işlem geçmişini sunun
$uye = Uye::find($uyeId);
$uye->transactions()->create([
'siparisNo' => $siparisNo,
'tutar' => $bakiye->tutar,
'durum' => 'basarili'
]);
Bu şekilde, uyeId bilgisi sayesinde bakiye yükleme işleminizi gerçekleştirebilirsiniz. inşâAllah yardımı dokunur :)
Ben genelde ürün detaylarını bir table de tutmak yolunu kullanırım. Bu table'ın bir product_id alanı olacak ve bu alan product table'daki id alanıyla eşleştirilecek. Böylece ürünün detayları ile ürünün genel bilgileri birbirine bağlı olacak ve performans düşüklüğü oluşmayacak.
Ayrıca, ürün detayları table'sına sadece kullanılacak olan detayları eklemeye özen gösteririm. Örneğin, eğer bir ürünün hafızası önemli değilse hafıza alanını bu table'da tutmam. Böylece table'ın yükü hafifleyecek ve performans iyileşecektir.
Diğer bir yöntem ise, ürün detaylarını json formatında bir alanda tutmak olabilir. Bu yöntem ile ürün detaylarına dinamik olarak ekleme ve çıkarma yapılabilir ve table yapısı değişmez. Ancak bu yöntem de performans konusunda biraz düşük olabilir. Bu yüzden genellikle ilk yöntemi tercih ederim.
Kodunuzu şu şekilde düzelterek istediğiniz sonuca ulaşabilisiniz!
<?php
function kdvsizTutar($tutar, $kdv) {
$sonuc = $tutar / (1 + ($kdv/100));
return number_format($sonuc, 2, '.', '');
}
$kdv = "18";
$tutar = "100.00";
echo kdvsizTutar($tutar, $kdv); // 84.75
$tutar = "101.00";
echo kdvsizTutar($tutar, $kdv); // 85.59
Merhaba! PHP kullanarak bir sipariş düzenleme ekranında yaptığınız değişiklikleri log olarak kaydetmek için aşağıdaki adımları izleyebilirsiniz:
1- Öncelikle, sipariş düzenleme ekranında bir "log" tutma işlemini gerçekleştirmek için bir dosya oluşturun ve dosyanın adını order-log.txt olarak belirleyin.
2- Daha sonra, sipariş düzenleme işlemini gerçekleştirdiğiniz PHP kodunun içinde bir log oluşturma işlemini başlatın. Bu işlemi yapmak için, order-log.txt dosyasına yazma işlemini gerçekleştirebilirsiniz.
Örneğin:
$log = fopen('order-log.txt', 'a'); // 'a' parametresi dosyaya ekleme yapmak için kullanılır
3- Daha sonra, sipariş düzenleme işleminin gerçekleştiği kısımda, değiştirilen veriyi dosyaya yazma işlemini gerçekleştirin.
Örneğin, siparişteki ad ve soyadı değiştirdiğinizde aşağıdaki kodu kullanabilirsiniz:
// Önceki ad ve soyadı alın
$oldName = 'John Doe';
// Yeni ad ve soyadı alın
$newName = 'Jane Doe';
// Değişiklikleri log dosyasına yazın
fwrite($log, "Ad ve soyad değiştirildi: $oldName => $newName\n");
Bu şekilde, sipariş düzenleme ekranında yaptığınız tüm değişiklikleri order-log.txt dosyasına kaydedebilirsiniz. Umarım bu bilgi size yardımcı olmuştur...
Evet, IndexedDB hakkında biraz bilgim var. IndexedDB, JavaScript kullanarak tarayıcınızda veri depolamanızı sağlayan bir veritabanı özelliğidir. Bu veritabanı, verilerinizi anahtar/değer çiftleri olarak depolamanıza ve bu verileri daha sonra hızlı bir şekilde aramanıza olanak sağlar.
Örnek kodu aşağıda gösteriyorum:
// Veritabanını açma ve bir depolama alanı oluşturma
let db;
let request = indexedDB.open("myDatabase", 1);
request.onerror = function(event) {
console.error("Veritabanı açılırken hata oluştu: " + event.target.errorCode);
};
request.onsuccess = function(event) {
db = event.target.result;
};
request.onupgradeneeded = function(event) {
let db = event.target.result;
// Bu kısımda bir "object store" (depolama alanı) oluşturuyoruz
let objectStore = db.createObjectStore("myObjectStore", { keyPath: "id" });
// Depolama alanına birkaç veri ekleyelim
objectStore.add({ id: 1, name: "John Doe", age: 30 });
objectStore.add({ id: 2, name: "Jane Doe", age: 28 });
};
// Veritabanındaki verileri okuma
let transaction = db.transaction(["myObjectStore"]);
let objectStore = transaction.objectStore("myObjectStore");
let request = objectStore.get(1);
request.onerror = function(event) {
console.error("Veriler okunurken hata oluştu: " + event.target.errorCode);
};
request.onsuccess = function(event) {
// Burada verileri kullanabilirsiniz
let data = event.target.result;
console.log("İsim: " + data.name + ", Yaş: " + data.age);
};
Bu kod, bir veritabanı oluşturur ve bu veritabanına bir depolama alanı ekler. Daha sonra, bu depolama alanına birkaç veri ekler ve son olarak da bu verileri okur. Daha fazla bilgi için MDN web docs'a göz atabilirsiniz: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
Merhaba,
Bu tür bağlantılarda, GET başlıkları ve değerleri "?" karakterinden sonra "&" karakteri ile ayrılır. Bu nedenle, URL'yi parçalayarak bu başlıkları ve değerlerini elde edebilirsiniz. Örnek olarak, aşağıdaki kod parçacığını deneyebilirsiniz:
$url = "https://www.prototurk.com/sorular/cevaplar?sayfa=2&filtre=prototurk,soru,cevap";
$getItems = explode("?", $url);
$getParams = explode("&", $getItems[1]);
$result = array();
foreach ($getParams as $param) {
$paramItems = explode("=", $param);
$result[$paramItems[0]] = $paramItems[1];
}
print_r($result);
Bu kod parçacığında, explode() fonksiyonunu kullanarak URL'yi "?" karakterine göre parçalıyoruz ve daha sonra parçalanmış dizinin ikinci elemanını tekrar "&" karakterine göre parçalıyoruz. Daha sonra, bu parçalanmış diziyi döngü ile geziyor ve her bir elemanı "=" karakterine göre parçalıyoruz. Böylece, her bir GET başlığı ve değerini ayrıştırabiliyoruz. Döngü bittikten sonra, $result dizisi içinde istediğiniz sonuçları bulabilirsiniz.
Umarım bu bilgiler yardımcı olur. İyi çalışmalar!