Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Konwerter - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Konwerter (/thread-konwerter)



Konwerter - kanapka - 18-05-2011

Witajcie,
potrzebuję Waszej pomocy przy doborze funkcji do napisania konwertera. Najlepiej prosiłbym o wskazówki.
Kod, który wpuszczamy w konwerter:
Kod:
<object id="nie potrzebne" doublesided="nie potrzebne" model="MODELID" interior="nie potrzebne" dimension="nie potrzebne" posX="POS_X" posY="POS_Y" posZ="POS_Z" rotX="ROT_X" rotY="ROT_Y" rotZ="ROT_Z" />
Potrzebuję przenieść do tablicy wartości, które!="nie potrzebne"., czyli kod, który wyjdzie powinien wyglądać tak:
Kod PHP:
$array=array(
"model"=>"MODELID",
"posX"="POS_X",
"posY"="POS_Y",
"posZ"="POS_Z",
"rot_X"="ROT_X",
"rot_Y"="ROT_Y",
"rot_Z"="ROT_Z"
); 
Myślałem, aby zrobić to na zasadzie BBCode, lecz nie wiem jak dalej podzielić kod na odcinki.
Kod:
$replacement=array(
//Niepotrzebne
"/\<object id=\"(.*?)\\"\/is" => null,
"/\doublesided=\"(.*?)\\"/is" => null,
"/\dimension=\"(.*?)\\"/is" => null,
"/\interior=\"(.*?)\\"/is" => null,
" />"=>null,
//Potrzebne
"/\model=\"(.*?)\\"\/is" => "$1,",
"/\posX=\"(.*?)\\"\/is" => "$1,",
"/\posY=\"(.*?)\\"\/is" => "$1,",
"/\posZ=\"(.*?)\\"\/is" => "$1,",
"/\rotX=\"(.*?)\\"\/is" => "$1,",
"/\rotY=\"(.*?)\\"\/is" => "$1,",
"/\rotZ=\"(.*?)\\"\/is" => "$1"
);
preg_replace($mybb->input['text'], $replacement, $string);
Wtedy kod wyjdzie nam w postaci:
Kod:
$string="model,posX,posY,posZ,rotX,rotY,rotZ";
Lecz jak to teraz dać w tablicę? Liczę na pomoc.


RE: Konwerter - kmd - 21-05-2011

Wykorzystaj funkcję explode rozbijając zmienną na części.
Kod:
$rozbicie = explode(",",$string);
http://php.net/manual/en/function.explode.php

Pierwszy przykład z powyższego linku:
Kod:
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
Jak widzisz przy użyciu funkcji explode została stworzona tablica.


RE: Konwerter - kanapka - 21-05-2011

Załóżmy mam taki kodzik. Teraz ostatnie pytanie. Big Grin Jak policzyć liczbę takich ciągów("<object id="wartosc" doublesided="wartosc" model="wartosc" interior="wartosc" dimension="wartosc" posX="wartosc" posY="wartosc" posZ="wartosc" rotX="wartosc" rotY="wartosc" rotZ="wartosc" />"). Z góry dzięki za pomoc. Smile
Kod PHP:
$i=0;
while(
$i>=$liczbalini)
{
$replacement=array(
//Niepotrzebne
"/\<object id=\"(.*?)\\"\/is" => null,
"
/\doublesided=\"(.*?)\\"/is" => null,
"
/\dimension=\"(.*?)\\"/is" => null,
"
/\interior=\"(.*?)\\"/is" => null,
/>"=>null,
//Potrzebne
"
/\model=\"(.*?)\\"\/is" => "$1,",
"
/\posX=\"(.*?)\\"\/is" => "$1,",
"
/\posY=\"(.*?)\\"\/is" => "$1,",
"
/\posZ=\"(.*?)\\"\/is" => "$1,",
"
/\rotX=\"(.*?)\\"\/is" => "$1,",
"
/\rotY=\"(.*?)\\"\/is" => "$1,",
"
/\rotZ=\"(.*?)\\"\/is" => "$1"
);
$string=preg_replace($mybb->input['text'], $replacement$string);
$array=explode(",", $string);
$array2=array(
"
model"=>$array['0'],
"
posX"=>$array['1'],
"
posY"=>$array['2'],
"
posZ"=>$array['3'],
"
rotX"=>$array['4'],
"
rotY"=>$array['5'],
"
rotZ"=>$array['6'],
"
owner"=>$char['uid'],
"
ownertype"=>"1"
);
$db->insert_query("game_objects",$array2");
$i++;