Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Konwerter
#1
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.
Odpowiedz
#2
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.
Odpowiedz
#3
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++;

Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl