PHP yordamida stringning birinchi xarakterini yiriklashtirish. Keyin XMLWriter bilan chiqish.

Bu, ehtimol, sodda, lekin men buning eng yaxshi usulini bilmayman. PHP yordamida mysqli ma'lumotlar bazasidan ma'lumotlarni xml hujjatini yaratish uchun tortib olaman. Quyidagi kodim ishlaydi, ammo Sarlavha maydonidagi ma'lumotlar barcha papkalardir. Menga faqat boshlang'ich harflar kerak, qolganlari kichkina. Bilaman, ucwords funktsiyasi kerak, ammo hech qanday zar. Sarlavha maydoni barcha papkalarda bir necha so'zga ega.

XML maydoniga kirmasdan oldin ucwords tomonidan formatlangan ma'lumotlar kerak. JB-dagi ma'lumotlarni yangilash o'rniga, php-da buni qilishni afzal ko'raman. Yordamingiz uchun tashakkur!

<?php

// Connect to the database
global $link;
$link = mysqli_connect("localhost", "root", "pass", "database");

// Verify the connection worked
if (!$link) {
    printf("Connection to database failed: %s\n", mysqli_connect_error());
    exit();
}

// Prepare the database query
   $stmt = mysqli_prepare($link, "SELECT * FROM table"); 

// Run the database query
   mysqli_stmt_execute($stmt);

// Bind the result columns to PHP variables
   mysqli_stmt_bind_result($stmt, $Name, $Title);    

// Create a new xml document in memory

$xw = new xmlWriter();
$xw->openURI('php://output');
$xw->openMemory();
$xw->startDocument('1.0');

// Start the outer data container
$xw->StartElement('rss');
$xw->WriteAttribute('version', '2.0');

// Fetch values
  while (mysqli_stmt_fetch($stmt)) {

{

$xw->startElement('item');

 //Write out the elements
    $xw->writeElement('Name', $Name);
    $xw->writeElement('Title', $Title);
    $xw->endElement();

}

// End container
$xw->endElement();

// End the document
$xw->endDocument();


//header('Content-Type: text/xml');
print $xw->outputMemory(true);

// Close the database statement
mysqli_stmt_close($stmt);

// Close the database connection
mysqli_close($link);
 }
?>
1
Hech narsani tushunmadingmi?
qo'shib qo'ydi muallif hafichuk, manba
ucwords (strtolower ($ str))?
qo'shib qo'ydi muallif galchen, manba
ucwords va strtolower o'zgartirilgan mag'lubiyatga qaytadi. asl qiymati o'zgarmaydi. agar siz $ Title = ucwords (strtolower ($ Title) ni bajargan bo'lsangiz); bu nuqtadan boshlab $ Title o'zgargan versiyasi bo'ladi. Men siz xohlagan narsani $ xw-> writeElement deb hisoblayman ('Title', ucwords (strtolower ($ Title)));
qo'shib qo'ydi muallif galchen, manba
yangi nishonga o'xshab ovoz berish uchun uzr so'rayman, lekin buni binding bayonotidan keyin qo'yamanmi? bu masala bormi? ucwords qo'shib qo'ydim (strtolower ($ Title)); va keyin xml chiqishi mening Title ko'rinmaydi. Bu meni to'xtatib qo'ydi.
qo'shib qo'ydi muallif Dan M, manba
Bingo, rahmat galchen! Buni qilganim ham aqlimdan o'tmadi. Xo'sh, bu qanday o'rganishim, juda ko'p rahmat!
qo'shib qo'ydi muallif Dan M, manba

1 javoblar

The relevant section in http://php.net/manual/en/function.ucwords.php

<?php
$foo = 'hello world!';
$foo = ucwords($foo);            //Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);            //HELLO WORLD!
$bar = ucwords(strtolower($bar));//Hello World!
?>

So'rovingiz uchun men o'rnini almashtirdim:

// Prepare the database query
$stmt = mysqli_prepare($link, "SELECT * FROM table"); 

// Run the database query
mysqli_stmt_execute($stmt);

// Bind the result columns to PHP variables
mysqli_stmt_bind_result($stmt, $Name, $Title);    

Bilan:

$results = mysqli_query("SELECT * FROM table");

Keyinchalik while loop-ni o'zgartiring:

foreach($results as $row) {
    $xw->startElement('item');
    $xw->writeElement('Name', ucwords(strtolower($row['name']));
    $xw->writeElement('Title', ucwords(strtolower($row['title']));
    $xw->endElement();
}

Shubhasiz, bu ma'lumotlar bazasi sxemasini bilmayman, chunki bu bilan bog'liq bo'lishi kerak.

MySQL-ni o'zgartirishning asosiy sababi, ma'lumotlar bazasiga kelajakda sxema bo'yicha o'zgarishlar kiritilsa, ma'lumotlar bazasi ustunlarini tartiblash uchun kafolat berilmaganligidir.

Omad!

1
qo'shib qo'ydi
np, javobingiz siz uchun ishlaydi
qo'shib qo'ydi muallif hafichuk, manba
Rahmat Hafichuk, men o'qitadigan qo'llanma, lekin keyinchalik xml qismini keyinchalik ishlaydigan ko'rinadi.
qo'shib qo'ydi muallif Dan M, manba
maslahat uchun minnatdorchilik bildiraman, Hafichuk, salom!
qo'shib qo'ydi muallif Dan M, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin