Izvadite koordinate iz autocad dxf datoteke pomoću eksplodirajuće php funkcije

Funkcija explode () je vrlo jednostavna, ali iznimno korisna i koristi se kontinuirano u kodiranju. Ako se ova značajka ne koristi, koriste se regularni izrazi, ali oni rade sporije, pa je preporučljivo raditi s naprednim php funkcijama kako bi ubrzali svoj program.

Explode php: opis funkcije funkcije i njezine praktične primjene

Funkcija prima ulazni niz, dijeli ga na razdjelnik i dodjeljuje vrijednost niza numeričkim tipkama. U primjeru autocad dxf datoteke pokušajmo izdvojiti koordinate i nacrtati crteže pomoću GD knjižnice php. Datoteka dxf je u biti tekstualni dokument u kojem su napisane koordinate svih crteža. Izgleda ovako:
ENTITIES su esencije, LWPOLYLINE je zatvoreni poligon, broj 10 označava koordinatu x, nakon što ode vrijednost (tj. X = 0.0), broj 20 označava y, njegovu vrijednost iz sljedećeg retka (tj. Y = 500.0), ništa kompleks. Pronađite potrebne informacije u dxf datoteci. Da bismo to učinili, koristit ćemo funkciju strchr () koja će nas pronaći ENTITIES i poligone (LWPOLYLINE):

$ content = file_get_contents ('stairs.dxf');
$ entity = strchr ($ sadržaj, "ENTITIES");
$ endec = strchr ($ entity, "ENDSEC", true);
$ entitie_string = $ endec;

Funkcija eksplodirajuće php pomoći će vam da dobijete koordinate. U ovom primjeru koristimo samo poligon, ali u crtežima i mnogim drugim oblicima, tako da dodijelimo njihov niz. Razmotrimo samo LWPOLYLINE:

Sljedeći primjer pronalazi pozicije svih LWPOLYLINE u tekstualnom dokumentu dxf:

$ lastPos = 0;
$ positions_entities = array ();
foreach ($ entity_array kao $ key_needle = & gt; $ entitie) {
while ({$ lastPos = strpos ($ entitie_string, $ entitie, $ lastPos))! == false) {
$ positions_entities [$ lastPos] = $ entitee;
$ lastPos = $ lastPos + strlen ($ entitie);
}
}
$ array_keys_positions = array_keys ($ positions_entities);
$ sizeof_array_positions = sizeof ($ array_keys_positions); ($ Array_keys_positions [$ i]] [$ array_keys_positions [$ i] $ [$ i]] [$ array_keys_positions [$ i]] [$ array_keys_positions [$ i] ]] = substr ($ entitie_string, $ array_keys_positions [$ i], $ array_keys_positions [$ i + 1] - $ array_keys_positions [$ i]);
}
else {
$ entity_string_array [$ places_entities] $ array_keys_positions [$ i]]] [$ array_keys_positions [$ i]] = substr ($ first_entitie_string, $ array_keys_positions [$ i]);
}
}

Sve linije poligona Sada smo u nizu, tj. Imamo tri poligona, što znači tri ključa i tri vrijednosti.U vrijednostima postoje redovi s informacijama iz dxf datoteke o tim poligonima, a sada trebate razbiti te linije kako biste odabrali koordinate iz njih. orystovuyemo eksplodirati ():

Povezane publikacije