Hi, Thanks for example. I solved problem. Thanks every body. Here, my code test : Richard LEHAUT/Tiolebucheron
<?php $list_layer= array(); $list_layer[]='<?xml version="1.0" encoding="utf-8"?><GetFeature xmlns=" http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml=" http://www.opengis.net/gml" service="WFS" version="1.0.0" outputFormat="GML2" maxFeatures="100" handle="" ><Query typeName="ZNIEFF_de_type_1" srsName="EPSG:2154" ><ogc:Filter><Intersect><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>((402363.90165238 2464262.4974283,481033.30361535 2524234.6872655,513841.61923219 2464615.2750155,433055.55174556 2416637.5231457,402363.90165238 2464262.4974283))</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></ogc:Filter></Query></GetFeature>'; foreach($list_layer as $i => $layer) { echo $layer; $curl_init[$i]= curl_init(' http://ws.carmen.developpement-durable.gouv.fr/WFS/8/nature?'); curl_setopt($curl_init[$i], CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curl_init[$i], CURLOPT_TIMEOUT, 30); curl_setopt($curl_init[$i], CURLOPT_POST,1); curl_setopt($curl_init[$i], CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl_init[$i], CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl_init[$i], CURLOPT_HEADER, 0); curl_setopt($curl_init[$i], CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); curl_setopt($curl_init[$i], CURLOPT_POSTFIELDS, $layer); curl_setopt($curl_init[$i], CURLOPT_RETURNTRANSFER, 1); } $curl_multi = curl_multi_init(); foreach($list_layer as $i => $layer) { curl_multi_add_handle($curl_multi, $curl_init[$i]); } do { curl_multi_exec($curl_multi, $running); } while($running > 0); foreach($list_layer as $i => $layer) { echo curl_multi_getcontent($curl_init[$i]); curl_close($curl_init[$i]); } return $list_layer; ?> 2010/10/13 Olivier BEDEL <[email protected]> > Hi Robert, > > The file_get_contents error you get doesn't come from your code but is > return by the Carmen wfs server. > As Jukka said, your filter seems too long to be sent in a GET parameter. > But when querying the wfs server in POST, you should send your query in XML > and not use Key Value Pair encoding (FILTER=...). > > In fact, the content of your POST query should look like this : > > <?xml version="1.0" encoding="utf-8"?><GetFeature xmlns=" > http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml=" > http://www.opengis.net/gml" service="WFS" version="1.0.0" > outputFormat="GML2" maxFeatures="100" handle="" ><Query > typeName="ZNIEFF_de_type_1" srsName="EPSG:2154" > ><ogc:Filter><Intersect><PropertyName>Geometry</PropertyName><gml:Polygon><gml:outerBoundaryIs><gml:LinearRing><gml:coordinates>(526467,6821671 > 526471,6821675 526480,6821677 526482,6821676 526491,6821679 526490,6821682 > 526546,6821697 526615,6821701 526616,6821699 526627,6821699 526628,6821702 > 526708,6821705 526804,6821709 526821,6821701 526886,6821665 526916,6821658 > 526933,6821616 526961,6821574 526969,6821565 526982,6821513 526833,6821533 > 526833,6821517 526813,6821513 526801,6821508 526749,6821480 526732,6821469 > 526718,6821484 526688,6821481 526616,6821481 526620,6821448 526584,6821438 > 526547,6821401 526545,6821397 526533,6821376 526455,6821381 526453,6821379 > 526409,6821377 526415,6821415 526429,6821499 526440,6821569 526377,6821567 > 526362,6821463 526357,6821393 526359,6821371 526360,6821362 526365,6821332 > 526325,6821292 526315,6821308 526302,6821322 526296,6821325 526277,6821347 > 526286,6821417 526286,6821447 526295,6821516 526303,6821549 526308,6821569 > 526314,6821571 526320,6821578 526328,6821580 526340,6821589 526381,6821619 > 526466,6821673 526467,6821671 526467,6821671) (526489,6821639 526492,6821655 > 526493,6821655 526489,6821639 526489,6821639) (526467,6821588 526466,6821586 > 526464,6821585 526467,6821588 526467,6821588) (526479,6821603 526478,6821601 > 526477,6821599 526479,6821603 526479,6821603) (526489,6821639 526489,6821639 > 526486,6821627 526489,6821639 526489,6821639)) ((527187,6822859 > 527158,6822860 527138,6822862 527110,6822871 527104,6822873 527098,6822871 > 527054,6822879 527003,6822885 526998,6822885 526995,6822885 526972,6822882 > 526964,6822889 526955,6822894 526935,6822910 526922,6822929 526916,6822946 > 526910,6822973 526917,6822980 526917,6822987 526915,6823010 526942,6823015 > 526943,6823045 526945,6823052 526948,6823056 526956,6823059 526969,6823073 > 526973,6823081 526975,6823094 526970,6823097 526971,6823102 526987,6823123 > 527004,6823131 527019,6823103 527050,6823109 527134,6823120 527137,6823099 > 527133,6823084 527134,6823050 527190,6823074 527199,6823016 527220,6823014 > 527213,6822861 527204,6822860 527187,6822859 527187,6822859) (527114,6823008 > 527114,6823001 527071,6822980 527059,6822982 527050,6822978 527032,6822968 > 527024,6823072 527047,6823070 527043,6823034 527049,6822983 527068,6822984 > 527114,6823008 527114,6823008) (527112,6822930 527115,6822933 527118,6822943 > 527118,6822947 527119,6822955 527124,6822954 527123,6822945 527119,6822930 > 527115,6822925 527112,6822930 527112,6822930)) ((526685,6821896 > 526737,6821974 526766,6822042 526771,6822072 526782,6822030 526808,6821981 > 526869,6821901 526875,6821889 526909,6821797 526908,6821779 526900,6821771 > 526832,6821727 526812,6821722 526787,6821720 526785,6821761 526666,6821870 > 526685,6821896 526685,6821896)) ((527009,6822654 527076,6822645 > 527077,6822629 527076,6822611 527076,6822608 527079,6822589 527070,6822587 > 527063,6822589 527038,6822623 527012,6822641 527009,6822649 527007,6822650 > 527002,6822652 526984,6822657 526953,6822666 526917,6822684 526898,6822697 > 526901,6822703 526949,6822680 526958,6822701 526927,6822716 526946,6822718 > 526955,6822714 526961,6822709 526980,6822748 526988,6822809 526997,6822811 > 527002,6822843 527040,6822877 527052,6822875 527086,6822868 527100,6822860 > 527104,6822849 527107,6822845 527113,6822839 527120,6822826 527134,6822803 > 527147,6822771 527160,6822720 527168,6822679 527153,6822679 527132,6822678 > 527079,6822677 527012,6822671 527009,6822654 527009,6822654)) > ((527249,6822166 527250,6822157 527257,6822142 527274,6822104 527280,6822079 > 527265,6822097 527230,6822148 527205,6822195 527179,6822230 527163,6822262 > 527205,6822288 527251,6822297 527270,6822298 527334,6822298 527376,6822304 > 527391,6822304 527503,6822328 527554,6822333 527572,6822322 527548,6822299 > 527542,6822296 527545,6822281 527391,6822246 527282,6822211 527218,6822199 > 527249,6822166 527249,6822166)) ((526821,6822064 526901,6822093 > 526939,6822084 526962,6822085 526985,6822075 527018,6822113 527046,6822155 > 527068,6822140 527064,6822093 527061,6822073 527051,6822041 527024,6821996 > 526906,6821995 526896,6821998 526889,6822002 526868,6822015 526852,6822029 > 526821,6822064 526821,6822064)) ((527082,6822584 527086,6822573 > 527091,6822566 527073,6822564 527065,6822561 527046,6822526 527047,6822455 > 527052,6822410 527053,6822381 527038,6822382 527036,6822378 526966,6822403 > 526967,6822435 526972,6822476 526983,6822538 527010,6822639 527032,6822623 > 527036,6822619 527055,6822594 527060,6822586 527066,6822584 527081,6822585 > 527082,6822584 527082,6822584)) ((526546,6821979 526549,6822025 > 526551,6822040 526563,6822075 526684,6822011 526655,6821986 526614,6821947 > 526680,6821898 526664,6821872 526662,6821873 526546,6821979 526546,6821979)) > ((527014,6821959 527090,6821938 527116,6821929 527112,6821927 527110,6821928 > 527103,6821924 527104,6821920 527060,6821893 527019,6821865 527017,6821866 > 527006,6821858 527008,6821855 526927,6821792 526923,6821792 526922,6821794 > 526924,6821803 526984,6821906 527006,6821947 527014,6821959 527014,6821959)) > ((527170,6822232 527134,6822195 527134,6822164 527129,6822155 527102,6822120 > 527073,6822133 527074,6822170 527083,6822210 527123,6822234 527156,6822262 > 527170,6822232 527170,6822232)) ((526582,6822099 526581,6822099 > 526584,6822100 526592,6822098 526600,6822099 526626,6822130 526741,6822056 > 526740,6822052 526704,6822025 526582,6822099 526582,6822099)) > ((527461,6822398 527434,6822522 527484,6822557 527504,6822464 527472,6822443 > 527472,6822435 527489,6822377 527461,6822398 527461,6822398)) > ((527423,6822716 527345,6822691 527339,6822710 527302,6822693 527289,6822721 > 527396,6822770 527414,6822736 527423,6822716 527423,6822716)) > ((527726,6822272 527788,6822255 527792,6822219 527799,6822180 527817,6822133 > 527792,6822152 527774,6822172 527747,6822196 527727,6822269 527726,6822272 > 527726,6822272)) ((527835,6823091 527845,6823121 527847,6823122 > 527871,6823117 527904,6823102 527896,6823091 527911,6823082 527889,6823053 > 527858,6823079 527835,6823091 527835,6823091)) ((527129,6822598 > 527125,6822597 527154,6822653 527171,6822677 527210,6822631 527129,6822598 > 527129,6822598)) ((527184,6822670 527176,6822681 527190,6822695 > 527236,6822770 527269,6822749 527184,6822670 527184,6822670)) > ((526719,6821400 526751,6821412 526776,6821372 526747,6821327 526719,6821400 > 526719,6821400)) ((527143,6822790 527141,6822795 527133,6822810 > 527128,6822819 527124,6822825 527117,6822840 527110,6822846 527107,6822851 > 527103,6822862 527106,6822865 527110,6822865 527139,6822859 527135,6822836 > 527160,6822831 527174,6822853 527177,6822854 527187,6822855 527164,6822818 > 527143,6822790 527143,6822790)) ((527423,6822716 527420,6822725 > 527449,6822734 527480,6822692 527430,6822672 527428,6822676 527431,6822697 > 527423,6822716 527423,6822716)) ((526654,6822160 526675,6822186 > 526685,6822193 526698,6822175 526692,6822165 526679,6822144 526654,6822160 > 526654,6822160)</gml:coordinates></gml:LinearRing></gml:outerBoundaryIs></gml:Polygon></Intersect></ogc:Filter></Query></GetFeature> > > Regards, > > Olivier. > > > > > ----- Mail Original ----- > De: "Richard LEHAUT" <[email protected]> > À: "Yves Jacolin" <[email protected]> > Cc: "Rahkonen Jukka" <[email protected]>, > [email protected] > Envoyé: Mardi 12 Octobre 2010 16:59:49 > Objet: Re: [mapserver-users] Problem with wfs.php > > > Hi, > I followed your instructions, I try use "curl-setopt-array" with > "curl_multi_init". > > function curl_get_multi_content($list_layer) { > $curl_init = array(); > > foreach($list_layer as $i => $layer) { > unset($options); > $options = array > ( > CURLOPT_RETURNTRANSFER => true, > CURLOPT_CONNECTTIMEOUT => 120, > CURLOPT_TIMEOUT => 120, > CURLOPT_POST => 1, > CURLOPT_POSTFIELDS => $layer['data'].$layer['filter'], > ); > > $curl_init[$i] = curl_init($layer['url']); > curl_setopt_array($curl_init[$i],$options); > } > > $curl_multi = curl_multi_init(); > > foreach($list_layer as $i => $layer) { > curl_multi_add_handle($curl_multi, $curl_init[$i]); > } > do { > curl_multi_exec($curl_multi, $running); > } while($running > 0); > > foreach($list_layer as $i => $layer) { > echo curl_multi_getcontent($curl_init[$i]); > $list_layer[$i] = > $layer+Array('info'=>get_info_xml(curl_multi_getcontent($curl_init[$i]), > $layer['name'])); > curl_close($curl_init[$i]); > } > return $list_layer; > } > > With my server, result is correct. I've a error with server Carmen : > ZNIEFF_de_type_1=======> > Warning: file_get_contents( > http://ws.carmen.developpement-durable.gouv.fr/cgi-bin/mapserv?service_idx=8&map=%2Fmnt%2Fdata_carmen%2FBN%2FPublication%2Fwms_nature.map&VERSION=1.0.0&SERVICE=WFS&REQUEST=GetFeature&TYPENAME=ZNIEFF_de_type_1&FILTER=%3CFilter%3E%3CIntersect%3E%3CPropertyName%3EGeometry%3C%2FPropertyName%3E%3Cgml%3APolygon%3E%3Cgml%3AouterBoundaryIs%3E%3Cgml%3ALinearRing%3E%3Cgml%3Acoordinates%3E%28526467%2C6821671%20526471%2C6821675%20526480%2C6821677%20526482%2C6821676%20526491%2C6821679%20526490%2C6821682%20526546%2C6821697%20526615%2C6821701%20526616%2C6821699%20526627%2C6821699%20526628%2C6821702%20526708%2C6821705%20526804%2C6821709%20526821%2C6821701%20526886%2C6821665%20526916%2C6821658%20526933%2C6821616%20526961%2C6821574%20526969%2C6821565%20526982%2C6821513%20526833%2C6821533%20526833%2C6821517%20526813%2C6821513%20526801%2C6821508%20526749%2C6821480%20526732%2C6821469%20526718%2C6821484%20526688%2C6821481%20526616%2C6821481%20526620%2C6821448%20526584%2C6821438%20526547%2Cin > /applications/www/carmen/WFS/wfs.php on line 123 > > Warning: Cannot modify header information - headers already sent by (output > started at /applications/www/carmen/WFS/wfs.php:123) in > /applications/www/carmen/WFS/wfs.php on line 91. > > It's the same message of the first error (number of ligne changed), but the > function working properly on my server!!!! > > Thanks for your help. > > Richard LEHAUT/Tiolebucheron > > > 2010/10/11 Yves Jacolin < [email protected] > > > > Hi, > > Don't use file_get_contents but cURL rather: > http://www.php.net/manual/fr/function.curl-setopt-array.php > > Regards, > > Y. > > > _______________________________________________ > mapserver-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapserver-users > _______________________________________________ > mapserver-users mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/mapserver-users >
_______________________________________________ mapserver-users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/mapserver-users
