|
@@ 118-127 (lines=10) @@
|
| 115 |
|
|
| 116 |
|
// ----------------------------------- MENTIONS ------------------------------ |
| 117 |
|
|
| 118 |
|
if ( self::MENTIONS & $what_to_extract ) { |
| 119 |
|
if ( preg_match_all( '/(^|\s)@(\w+)/u', $stripped_content, $matches ) ) { |
| 120 |
|
$mentions = array_values( array_unique( $matches[2] ) ); // array_unique() retains the keys! |
| 121 |
|
$mentions = array_map( 'strtolower', $mentions ); |
| 122 |
|
$extracted['mention'] = array( 'name' => $mentions ); |
| 123 |
|
if ( ! isset( $extracted['has'] ) ) { |
| 124 |
|
$extracted['has'] = array(); |
| 125 |
|
} |
| 126 |
|
$extracted['has']['mention'] = count( $mentions ); |
| 127 |
|
} |
| 128 |
|
} |
| 129 |
|
|
| 130 |
|
// ----------------------------------- HASHTAGS ------------------------------ |
|
@@ 140-147 (lines=8) @@
|
| 137 |
|
// This regex does not exactly match Twitter's |
| 138 |
|
// if there are problems/complaints we should implement this: |
| 139 |
|
// https://github.com/twitter/twitter-text/blob/master/java/src/com/twitter/Regex.java . |
| 140 |
|
if ( preg_match_all( '/(?:^|\s)#(\w*\p{L}+\w*)/u', $stripped_content, $matches ) ) { |
| 141 |
|
$hashtags = array_values( array_unique( $matches[1] ) ); // array_unique() retains the keys! |
| 142 |
|
$hashtags = array_map( 'strtolower', $hashtags ); |
| 143 |
|
$extracted['hashtag'] = array( 'name' => $hashtags ); |
| 144 |
|
if ( ! isset( $extracted['has'] ) ) { |
| 145 |
|
$extracted['has'] = array(); |
| 146 |
|
} |
| 147 |
|
$extracted['has']['hashtag'] = count( $hashtags ); |
| 148 |
|
} |
| 149 |
|
} |
| 150 |
|
|