Извличайте координатите от autocad dxf файла, като използвате експлодиращата php функция

Функцията explode () е доста проста, но изключително полезна и се използва непрекъснато в кодирането. Ако тази функция не се използва, се използват регулярни изрази, но те работят по-бавно, така че е препоръчително да работите с напредналите php функции, за да ускорите програмата си.

Explode php: описание на функцията на функцията и нейното практическо приложение

Функцията получава входен низ, разделя го на разделител и присвоява стойност на масив към цифровите клавиши. В примера с autocad dxf файла, нека се опитаме да извлечем координатите и да изготвим чертежи с помощта на библиотеката GD php. Файлът dxf е по същество обикновен текстов документ, в който са написани координатите на всички чертежи. Изглежда така:
ENTITIES са есенции, LWPOLYLINE е затворен многоъгълник, числото 10 обозначава координатата x, след като върви стойността (т.е. x = 0.0), числото 20 показва y, неговата стойност от следващия ред (т.е. y = 500.0), нищо комплекс. Намерете необходимата информация в dxf файла. За да направите това, ще използваме функцията strchr (), която ще ни намери ENTITIES и полигони (LWPOLYLINE):

$ content = file_get_contents ('stairs.dxf');
$ entity = strchr ($ съдържание, "ENTITIES");
$ endec = strchr ($ entity, "ENDSEC", true);
$ entitie_string = $ endec;

Функцията за избухване на php ще ви помогне да получите координати. В този пример използваме само многоъгълника, но в чертежите и много други форми, затова присвояваме техния масив. Разглеждаме само LWPOLYLINE:

Следният пример намира позициите на всички LWPOLYLINE в текстовия документ dxf:

$ lastPos = 0;
$ positions_entities = array ();
foreach ($ entity_array като $ key_needle = & gt; $ entitie) {
while ({$ lastPos = strpos ($ entitie_string, $ entitie, $ lastPos))! == false) {
= $ 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 {
$ array_keys_positions [$ i]]] [$ array_keys_positions [$ i]] = substr ($ first_entitie_string, $ array_keys_positions [$ i]); Сега сме в масива, т.е. имаме три полигона, което означава три ключа и три стойности.В стойности има редове с информация от файла dxf за тези полигони, а сега трябва да прекъснете тези линии, за да изберете координати от тях. orystovuyemo взривят ():

Свързани публикации