1. PHP / Говнокод #7910

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    function Parsing($raw)
    {
    
    	$RawProperty=array();
    	$Property=array();
    	$raw=str_ireplace("\n","",$raw);
    	$raw=str_replace("\r","<br/>",$raw);
    
    	preg_match_all("|<Policy>(.*)</Policy>|U",$raw,$RawProperty,PREG_OFFSET_CAPTURE);
    //print_r($RawProperty);
    	for ($k=0;$k<count($RawProperty[0]);$k++){
    
    		$Property[$k]['Insurer']=str_cut_btw_substrs("<InsurerLogoURL>","</InsurerLogoURL>",$RawProperty[0][$k][0]);
    		$Property[$k]['InsurerName']=str_cut_btw_substrs("<InsurerName>","</InsurerName>",$RawProperty[0][$k][0]);
    		$Property[$k]['Underwriter']=str_cut_btw_substrs("<UnderwriterName>","</UnderwriterName>",$RawProperty[0][$k][0]);
    		$Property[$k]['LinkURL']=str_cut_btw_substrs("<LinkURL>","</LinkURL>",$RawProperty[0][$k][0]);
    		$Property[$k]['Productname']=str_cut_btw_substrs("<ProductName>","</ProductName>",$RawProperty[0][$k][0]);
    		$Property[$k]['PremiumText']=str_cut_btw_substrs("<PremiumText>","</PremiumText>",$RawProperty[0][$k][0]);
    		$Property[$k]['PremiumEXText']=str_cut_btw_substrs("<PremiumEXText>","</PremiumEXText>",$RawProperty[0][$k][0]);
    		$Property[$k]['ExcessText']=str_cut_btw_substrs("<ExcessText>","</ExcessText>",$RawProperty[0][$k][0]);
    		$Property[$k]['LuggageText']=str_cut_btw_substrs("<LuggageText>","</LuggageText>",$RawProperty[0][$k][0]);
    		$Property[$k]['MedicalText']=str_cut_btw_substrs("<MedicalText>","</MedicalText>",$RawProperty[0][$k][0]);
    		$Property[$k]['CancelationText']=str_cut_btw_substrs("<CancelationText>","</CancelationText>",$RawProperty[0][$k][0]);
    		$Property[$k]['LiabilityText']=str_cut_btw_substrs("<LiabilityText>","</LiabilityText>",$RawProperty[0][$k][0]);
    		$Property[$k]['AdditionalFeatures']=str_cut_btw_substrs("<AdditionalFeatures>","</AdditionalFeatures>",$RawProperty[0][$k][0]);
    
    		//add fields "ExplanationText" and "IsShaded"
    		$Property[$k]['IsShaded']=str_cut_btw_substrs("<IsShaded>","</IsShaded>",$RawProperty[0][$k][0]);
    		$Property[$k]['ExplanationText']=str_cut_btw_substrs("<ExplanationText>","</ExplanationText>",$RawProperty[0][$k][0]);
    		$Property[$k]['IsBasicCover']=str_cut_btw_substrs("<IsBasicCover>","</IsBasicCover>",$RawProperty[0][$k][0]);
    		$Property[$k]['IsComprCover']=str_cut_btw_substrs("<IsComprCover>","</IsComprCover>",$RawProperty[0][$k][0]);
    
    								}
    	return $Property;
    }

    разбор xml ответа от сервера

    Запостил: Rubaka, 20 Сентября 2011

    Комментарии (16) RSS

    • >str_ireplace("\n","",$raw);
      Ох вау.

      >str_replace("\r","<br/>",$raw);
      Линупсоиды уже не люди.

      >str_cut_btw_substrs
      Чо?
      Ответить
      • str_cut_btw_substrs ну это выреж строку между подстроками =))
        function str_cut_btw_substrs($start,$end,$string){
            if (strstr($string,$start.'<![CDATA[')){
                $start = $start.'<![CDATA[';
                $end = ']]>'.$end;
            }
        	if ( $a=strpos($string,$start) ) $al=strlen($start);
        	else {$al=0;$a=0;}
        
        	$b=strpos(substr($string,$a+$al),$end);
        	if ($b===false) $b=strlen($string)-$al;
        
        	return substr($string,$a+$al,$b);
        }

        както так =)
        Ответить
    • str_cut_btw_substrs

      ахахаха)))) у меня эта функция называется gtbs($text, $sub1, $sub2), (get text between strings)
      Ответить
    • может, это просто костыль от отсутствия xml-ных библиотек?
      Ответить
      • просто автор кода о них не знает.
        Ответить
        • и гугл его забанил.
          Ответить
          • что бы искать что-то в гугле - нужно хотя бы в общих чертах представлять себе что ты ищешь.
            автор видимо даже этого не имеет.
            Ответить
            • Давно мечтаю о том, чтобы гугл мог вразумительно отвечать на вопросы типа "Где мой носок?" или "Как зовут мою соседку?".
              Ответить
              • Ответы:
                гугл-поиск: "где мои носки?"
                гугл-переводчик: "ыыыы...ыыы...."=>"а че вчера было?"
                ютюб: "нихрена себе, это я вчера?"
                гугл-календарь:"у маши сегодня критические дни, у веры вернулся муж, улетает завтра, зато юля из 22ой сегодня вечером ничего не делает!"
                гугл-хром: "ваш автомобиль был проапгрейжен до следующего техосмотра"
                Ответить
            • Программируя на пхп более 1 недели, невольно замечаешь тот факт, что все уже придумано до тебя. Вот например хочется тебе преобразовывать windows-1251 в utf ищешь в гугле и опа на iconv. И так все сначала ищешь и если нет пишешь велик.
              Ответить

    Добавить комментарий