Izvlecite koordinate iz datoteke autocad dxf z uporabo funkcije explode php

Funkcija explode () je precej preprosta, vendar zelo uporabna in se stalno uporablja pri kodiranju. Če se ta funkcija ne uporablja, se uporabljajo regularni izrazi, vendar delujejo počasneje, zato je priporočljivo, da delate z naprednimi funkcijami php, da pospešite program.

Explode php: opis funkcije funkcije in njena praktična uporaba

Funkcija prejme vhodni niz, ga razdeli na delilnik in dodeli vrednost matrike numeričnim tipkam. V primeru datoteke autocad dxf poskušajmo ekstrahirati koordinate in narisati risbe s pomočjo GD Library php. Datoteka dxf je v bistvu dokument z navadnim besedilom, v katerem so zapisane koordinate vseh risb. Izgleda takole:
ENTITIES so esence, LWPOLYLINE je zaprt mnogokotnik, številka 10 pa koordinata x, po tem, ko gre vrednost (to je x = 0.0), številka 20 označuje y, njeno vrednost iz naslednje vrstice (to je y = 500.0), nič \ t zlaganje Poiščite informacije, ki jih potrebujemo v datoteki dxf. V ta namen bomo uporabili funkcijo strchr (), ki nas najde ENTITIES in poligone (LWPOLYLINE):

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

Funkcija eksplodira php vam bo pomagala dobiti koordinate. V tem primeru uporabljamo samo poligon, toda v risbah in mnogih drugih oblikah, zato jim dodeljujemo matriko. Upoštevamo samo LWPOLYLINE:

Naslednji primer najde položaje vseh LWPOLYLINE v dokumentu z besedilom dxf:

$ lastPos = 0;
$ positions_entities = array ();
foreach ($ entity_array kot $ key_needle = & gt; $ entitie) {
medtem ({$ 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 $ array_keys_positions [$ i]]] [$ array_keys_positions [$ i]] = substr ($ first_entitie_string, $ array_keys_positions [$ i]);
}
}

Vse vrstice poligonov Zdaj smo v matriki, to pomeni, da imamo tri poligone, kar pomeni tri ključe in tri vrednosti.V vrednostih so vrstice z informacijami iz datoteke dxf o teh poligonih, zdaj pa morate te vrstice razbiti, da izberete koordinate iz njih. orystovuyemo eksplodirajo ():

Sorodne publikacije