ObjectToArray   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 2
c 2
b 0
f 0
lcom 0
cbo 0
dl 0
loc 30
ccs 0
cts 17
cp 0
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A transform() 0 5 1
A html2txt() 0 12 1
1
<?php
2
/*
3
 * Copyright 2013 Jan Eichhorn <[email protected]>
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
18
namespace ApaiIO\ResponseTransformer;
19
20
/**
21
 * A responsetransformer transforming an object to an array
22
 *
23
 * @author Jan Eichhorn <[email protected]>
24
 */
25
class ObjectToArray implements ResponseTransformerInterface
26
{
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function transform($response)
31
    {
32
        $simpleXml = simplexml_load_string($response);
33
        return json_decode(json_encode($simpleXml), true);
34
    }
35
36
    /**
37
     * Cleans response from CSS, JS, and other embedded meta information
38
     *
39
     * @param string $text
40
     * @return string
41
     */
42
    function html2txt($text)
0 ignored issues
show
Best Practice introduced by
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
43
    {
44
        $text = preg_replace( '/(<div id="variations-test">.+?)+(<\/div>)/i', '', $text );
45
        $text = preg_replace( '/(<style>.+?)+(<\/style>)/i', '', $text );
46
        $search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
47
                       '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
48
                       '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
49
                       '@<![\s\S]*?--[ \t\n\r]*>@'         // Strip multi-line comments including CDATA
50
        );
51
        $text = preg_replace( $search, '', $text );
52
        return trim( strip_tags( $text ) );
53
    }
54
}
55