当前位置: 首页>>代码示例>>PHP>>正文


PHP JString::strrpos方法代码示例

本文整理汇总了PHP中JString::strrpos方法的典型用法代码示例。如果您正苦于以下问题:PHP JString::strrpos方法的具体用法?PHP JString::strrpos怎么用?PHP JString::strrpos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JString的用法示例。


在下文中一共展示了JString::strrpos方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getFieldHTML

    public function getFieldHTML($field, $required)
    {
        $required = $field->required == 1 ? ' data-required="true"' : '';
        //a fix for wrong data
        $field->value = JString::trim($field->value);
        if (JString::strrpos($field->value, ',') == JString::strlen($field->value) - 1) {
            $field->value = JString::substr($field->value, 0, -1);
        }
        $lists = explode(',', $field->value);
        //CFactory::load( 'helpers' , 'string' );
        $html = '<select id="field' . $field->id . '" name="field' . $field->id . '[]" type="select-multiple" multiple="multiple" class="joms-select joms-select--multiple" title="' . CStringHelper::escape(JText::_($field->tips)) . '" ' . $required . '>';
        $elementSelected = 0;
        foreach ($field->options as $option) {
            $selected = in_array($option, $lists) ? ' selected="selected"' : '';
            if (empty($selected)) {
                $elementSelected++;
            }
            $html .= '<option value="' . $option . '"' . $selected . '>' . JText::_($option) . '</option>';
        }
        if ($elementSelected == 0) {
            //if nothing is selected, we default the 1st option to be selected.
            $elementName = 'field' . $field->id;
            $html .= <<<HTML

                   <script type='text/javascript'>
                       var slt = document.getElementById('{$elementName}');
                       if(slt != null){
                          slt.options[0].selected = true;
                       }
                   </script>
HTML;
        }
        $html .= '</select>';
        return $html;
    }
开发者ID:joshjim27,项目名称:jobsglobal,代码行数:35,代码来源:list.php

示例2: truncate

 /**
  * Truncates text blocks over the specified character limit and closes
  * all open HTML tags. The method will optionally not truncate an individual
  * word, it will find the first space that is within the limit and
  * truncate at that point. This method is UTF-8 safe.
  *
  * @param   string   $text       The text to truncate.
  * @param   integer  $length     The maximum length of the text.
  * @param   boolean  $noSplit    Don't split a word if that is where the cutoff occurs (default: true).
  * @param   boolean  $allowHtml  Allow HTML tags in the output, and close any open tags (default: true).
  *
  * @return  string   The truncated text.
  *
  * @since   11.1
  */
 public static function truncate($text, $length = 0, $noSplit = true, $allowHtml = true)
 {
     // Check if HTML tags are allowed.
     if (!$allowHtml) {
         // Deal with spacing issues in the input.
         $text = str_replace('>', '> ', $text);
         $text = str_replace(array('&nbsp;', '&#160;'), ' ', $text);
         $text = JString::trim(preg_replace('#\\s+#mui', ' ', $text));
         // Strip the tags from the input and decode entities.
         $text = strip_tags($text);
         $text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
         // Remove remaining extra spaces.
         $text = str_replace('&nbsp;', ' ', $text);
         $text = JString::trim(preg_replace('#\\s+#mui', ' ', $text));
     }
     // Truncate the item text if it is too long.
     if ($length > 0 && JString::strlen($text) > $length) {
         // Find the first space within the allowed length.
         $tmp = JString::substr($text, 0, $length);
         if ($noSplit) {
             $offset = JString::strrpos($tmp, ' ');
             if (JString::strrpos($tmp, '<') > JString::strrpos($tmp, '>')) {
                 $offset = JString::strrpos($tmp, '<');
             }
             $tmp = JString::substr($tmp, 0, $offset);
             // If we don't have 3 characters of room, go to the second space within the limit.
             if (JString::strlen($tmp) > $length - 3) {
                 $tmp = JString::substr($tmp, 0, JString::strrpos($tmp, ' '));
             }
         }
         if ($allowHtml) {
             // Put all opened tags into an array
             preg_match_all("#<([a-z][a-z0-9]*)\\b.*?(?!/)>#i", $tmp, $result);
             $openedTags = $result[1];
             $openedTags = array_diff($openedTags, array("img", "hr", "br"));
             $openedTags = array_values($openedTags);
             // Put all closed tags into an array
             preg_match_all("#</([a-z]+)>#iU", $tmp, $result);
             $closedTags = $result[1];
             $numOpened = count($openedTags);
             // All tags are closed
             if (count($closedTags) == $numOpened) {
                 return $tmp . '...';
             }
             $openedTags = array_reverse($openedTags);
             // Close tags
             for ($i = 0; $i < $numOpened; $i++) {
                 if (!in_array($openedTags[$i], $closedTags)) {
                     $tmp .= "</" . $openedTags[$i] . ">";
                 } else {
                     unset($closedTags[array_search($openedTags[$i], $closedTags)]);
                 }
             }
         }
         $text = $tmp . '...';
     }
     return $text;
 }
开发者ID:jimyb3,项目名称:mathematicalteachingsite,代码行数:73,代码来源:string.php

示例3: truncate

	/**
	 * Truncates text blocks over the specified character limit and closes
	 * all open HTML tags. The behavior will not truncate an individual
	 * word, it will find the first space that is within the limit and
	 * truncate at that point. This method is UTF-8 safe.
	 *
	 * @param   string   $text    The text to truncate.
	 * @param   integer  $length  The maximum length of the text.
	 *
	 * @return  string   The truncated text.
	 *
	 * @since   11.1
	 */
	public static function truncate($text, $length = 0)
	{
		// Truncate the item text if it is too long.
		if ($length > 0 && JString::strlen($text) > $length)
		{
			// Find the first space within the allowed length.
			$tmp = JString::substr($text, 0, $length);
			$offset = JString::strrpos($tmp, ' ');
			if (JString::strrpos($tmp, '<') > JString::strrpos($tmp, '>'))
			{
				$offset = JString::strrpos($tmp, '<');
			}
			$tmp = JString::substr($tmp, 0, $offset);

			// If we don't have 3 characters of room, go to the second space within the limit.
			if (JString::strlen($tmp) >= $length - 3)
			{
				$tmp = JString::substr($tmp, 0, JString::strrpos($tmp, ' '));
			}

			// Put all opened tags into an array
			preg_match_all("#<([a-z][a-z0-9]?)( .*)?(?!/)>#iU", $tmp, $result);
			$openedtags = $result[1];
			$openedtags = array_diff($openedtags, array("img", "hr", "br"));
			$openedtags = array_values($openedtags);

			// Put all closed tags into an array
			preg_match_all("#</([a-z]+)>#iU", $tmp, $result);
			$closedtags = $result[1];
			$len_opened = count($openedtags);
			// All tags are closed
			if (count($closedtags) == $len_opened)
			{
				return $tmp . '...';
			}
			$openedtags = array_reverse($openedtags);
			// Close tags
			for ($i = 0; $i < $len_opened; $i++)
			{
				if (!in_array($openedtags[$i], $closedtags))
				{
					$tmp .= "</" . $openedtags[$i] . ">";
				}
				else
				{
					unset($closedtags[array_search($openedtags[$i], $closedtags)]);
				}
			}
			$text = $tmp . '...';
		}

		return $text;
	}
开发者ID:nikosdion,项目名称:Akeeba-Example,代码行数:66,代码来源:string.php

示例4: getFieldHTML

 public function getFieldHTML($field, $required)
 {
     $lists = array();
     //a fix for wrong data input
     $field->value = JString::trim($field->value);
     if (is_array($field->value)) {
         $tmplist = $field->value;
     } else {
         if (JString::strrpos($field->value, ',') == JString::strlen($field->value) - 1) {
             $field->value = JString::substr($field->value, 0, -1);
         }
         $tmplist = explode(',', $field->value);
     }
     if ($tmplist) {
         foreach ($tmplist as $value) {
             $lists[] = JString::trim($value);
         }
     }
     $html = '';
     $elementSelected = 0;
     $elementCnt = 0;
     $cnt = 0;
     $params = new CParameter($field->params);
     $readonly = '';
     if ($params->get('readonly') == 1) {
         $readonly = ' disabled="disabled"';
     }
     $html .= '<div style="display:inline-block">';
     if (is_array($field->options)) {
         foreach ($field->options as $option) {
             if (JString::trim($option) == '') {
                 //do not display blank options
                 continue;
             }
             $selected = in_array(JString::trim($option), $lists) ? ' checked="checked"' : '';
             if (empty($selected)) {
                 $elementSelected++;
             }
             $html .= '<label class="lblradio-block">';
             $html .= '<input type="checkbox" name="field' . $field->id . '[]" value="' . $option . '" class="joms-checkbox" ' . $selected . $readonly . ' style="margin: 2px 5px 0 0" />';
             $html .= JText::_($option) . '</label>';
             $elementCnt++;
         }
     }
     $html .= '</div>';
     return $html;
 }
开发者ID:Jougito,项目名称:DynWeb,代码行数:47,代码来源:checkbox.php

示例5: crop

 /**
  * Crop string into given length.
  * Method strip HTML tags and crop string to given length after last space.
  * From croped string strip all characters which are not letter or number.
  * At the end of string add tail according to language constant JOOMDOC_CROP.
  *
  * @param string $text string to crop
  * @param int $length crop length
  * @return string
  */
 public static function crop($text, $length)
 {
     $chars = '~;!?.,@#$%^&*_-=+{}[]()<>:|"\'´`//\\';
     $text = strip_tags($text);
     $text = parent::trim($text);
     if (parent::strlen($text) <= $length) {
         return $text;
     }
     $text = parent::substr($text, 0, $length);
     $lastSpace = parent::strrpos($text, ' ');
     $text = parent::substr($text, 0, $lastSpace);
     $text = parent::trim($text);
     while ($length = parent::strlen($text)) {
         $lastChar = parent::substr($text, $length - 2, 1);
         if (parent::strpos($chars, $lastChar) !== false) {
             $text = parent::substr($text, 0, $length - 1);
         } else {
             break;
         }
     }
     return JText::sprintf('JOOMDOC_CROP', $text);
 }
开发者ID:abdullah929,项目名称:bulletin,代码行数:32,代码来源:string.php

示例6: truncateText

 protected static function truncateText($string, $limit)
 {
     $prevSpace = JString::strrpos(JString::substr($string, 0, $limit), ' ');
     $prevLength = $prevSpace !== false ? $limit - max(0, $prevSpace) : $limit;
     $nextSpace = JString::strpos($string, ' ', $limit + 1);
     $nextLength = $nextSpace !== false ? max($nextSpace, $limit) - $limit : $limit;
     $length = 0;
     if ($prevSpace !== false && $nextSpace !== false) {
         $length = $prevLength < $nextLength ? $prevSpace : $nextSpace;
     } elseif ($prevSpace !== false && $nextSpace === false) {
         $length = $length - $prevLength < $length * 0.1 ? $prevSpace : $length;
     } elseif ($prevSpace === false && $nextSpace !== false) {
         $length = $nextLength - $length < $length * 0.1 ? $nextSpace : $length;
     }
     if ($length > 0) {
         $limit = $length;
     }
     $text = JString::substr($string, 0, $limit);
     if (!preg_match('#(\\.|\\?|\\!)$#ismu', $text)) {
         $text = preg_replace('#\\s?(\\,|\\;|\\:|\\-)$#ismu', '', $text) . ' ...';
     }
     return $text;
 }
开发者ID:enjoy2000,项目名称:smcd,代码行数:23,代码来源:helper.php

示例7: getReadmore

 function getReadmore($text, $length = null)
 {
     $text = strip_tags($text);
     $text = JString::trim($text);
     if ($length) {
         $text = JString::substr($text, 0, $length + 1);
         $last = JString::strrpos($text, ' ');
         if ($last) {
             $text = JString::substr($text, 0, $last);
             $run = true;
             while ($run) {
                 $slength = JString::strlen($text);
                 if ($slength == 0) {
                     break;
                 }
                 $last = JString::substr($text, $slength - 1, 1);
                 switch ($last) {
                     case '.':
                     case ',':
                     case '_':
                     case '-':
                         $text = JString::substr($text, 0, $slength - 1);
                         break;
                     default:
                         $run = false;
                         break;
                 }
             }
             $text .= ' ...';
         }
     }
     return $text;
 }
开发者ID:hixbotay,项目名称:executivetransport,代码行数:33,代码来源:html.php

示例8: testStrrpos

 /**
  * @group String
  * @covers JString::strrpos
  * @dataProvider strrposData
  */
 public function testStrrpos($haystack, $needle, $offset = 0, $expect)
 {
     $actual = JString::strrpos($haystack, $needle, $offset);
     $this->assertEquals($expect, $actual);
 }
开发者ID:GMaup,项目名称:joomla-platform,代码行数:10,代码来源:JStringTest.php

示例9: payment

 /**
  * Get path to payment files.
  * 
  * @param string $alias
  * @return array
  */
 function payment($alias)
 {
     return array('button' => ($base = PAYMENTS . DS . JString::substr($alias, 0, JString::strrpos($alias, '_')) . DS) . 'button.php', 'config' => $base . 'config.xml', 'controller' => $base . 'controller.php', 'icon' => $base . 'icon.png');
 }
开发者ID:hixbotay,项目名称:executivetransport,代码行数:10,代码来源:importer.php

示例10: clipDesc

 /**
  * Clip text to use as meta description
  *
  * @param string $text
  * @param int $limit
  * @return string
  */
 function clipDesc($text, $limit)
 {
     if (JString::strlen($text) > $limit) {
         $text = JString::substr($text, 0, $limit);
         $pos = JString::strrpos($text, ' ');
         if ($pos !== false) {
             $text = JString::substr($text, 0, $pos);
         }
         $text = JString::trim($text);
     }
     return $text;
 }
开发者ID:01J,项目名称:bealtine,代码行数:19,代码来源:seftools.php

示例11: mapAvatar

 public function mapAvatar($avatarUrl = '', $joomlaUserId, $addWaterMark)
 {
     $image = '';
     if (!empty($avatarUrl)) {
         // Make sure user is properly added into the database table first
         $user = CFactory::getUser($joomlaUserId);
         $fbUser = $this->getUser();
         // Load image helper library as it is needed.
         CFactory::load('helpers', 'image');
         // Store image on a temporary folder.
         $tmpPath = JPATH_ROOT . DS . 'images' . DS . 'originalphotos' . DS . 'facebook_connect_' . $fbUser;
         /*
         			print_r($avatarUrl); exit;	
         			$url	= parse_url( $avatarUrl );
         			$host	= $url[ 'host' ];
         			$fp = fsockopen("profile.ak.fbcdn.net", 80, $errno, $errstr, 30);
         $path	= CString::str_ireplace( $url['scheme'] . '://' . $host , '' , $avatarUrl );
         			$source	= '';
         if( $fp )
         			{
         				$out = "GET $path HTTP/1.1\r\n";
         				$out .= "Host: " . $host . "\r\n";
         				$out .= "Connection: Close\r\n\r\n";
         	fwrite($fp, $out);
         				
         				$body		= false;
         								
         				while( !feof( $fp ) )
         				{
         					$return	= fgets( $fp , 1024 );
         					
         					if( $body )
         					{
         						$source	.= $return;
         					}
         					
         					if( $return == "\r\n" )
         					{
         						$body	= true;
         					}
         				}
         				fclose($fp);
         }
         */
         // Need to extract the non-https version since it will cause
         // certificate issue
         $avatarUrl = str_replace('https://', 'http://', $avatarUrl);
         CFactory::load('helpers', 'remote');
         $source = CRemoteHelper::getContent($avatarUrl, true);
         list($headers, $source) = explode("\r\n\r\n", $source, 2);
         JFile::write($tmpPath, $source);
         // @todo: configurable width?
         $imageMaxWidth = 160;
         // Get a hash for the file name.
         $fileName = JUtility::getHash($fbUser . time());
         $hashFileName = JString::substr($fileName, 0, 24);
         $extension = JString::substr($avatarUrl, JString::strrpos($avatarUrl, '.'));
         $type = 'image/jpg';
         if ($extension == '.png') {
             $type = 'image/png';
         }
         if ($extension == '.gif') {
             $type = 'image/gif';
         }
         //@todo: configurable path for avatar storage?
         $config = CFactory::getConfig();
         $storage = JPATH_ROOT . DS . $config->getString('imagefolder') . DS . 'avatar';
         $storageImage = $storage . DS . $hashFileName . $extension;
         $storageThumbnail = $storage . DS . 'thumb_' . $hashFileName . $extension;
         $image = $config->getString('imagefolder') . '/avatar/' . $hashFileName . $extension;
         $thumbnail = $config->getString('imagefolder') . '/avatar/' . 'thumb_' . $hashFileName . $extension;
         $userModel = CFactory::getModel('user');
         // Only resize when the width exceeds the max.
         CImageHelper::resizeProportional($tmpPath, $storageImage, $type, $imageMaxWidth);
         CImageHelper::createThumb($tmpPath, $storageThumbnail, $type);
         if ($addWaterMark) {
             // Get the width and height so we can calculate where to place the watermark.
             list($watermarkWidth, $watermarkHeight) = getimagesize(FACEBOOK_FAVICON);
             list($imageWidth, $imageHeight) = getimagesize($storageImage);
             list($thumbWidth, $thumbHeight) = getimagesize($storageThumbnail);
             CImageHelper::addWatermark($storageImage, $storageImage, $type, FACEBOOK_FAVICON, $imageWidth - $watermarkWidth, $imageHeight - $watermarkHeight);
             CImageHelper::addWatermark($storageThumbnail, $storageThumbnail, $type, FACEBOOK_FAVICON, $thumbWidth - $watermarkWidth, $thumbHeight - $watermarkHeight);
         }
         // Update the CUser object with the correct avatar.
         $user->set('_thumb', $thumbnail);
         $user->set('_avatar', $image);
         // @rule: once user changes their profile picture, storage method should always be file.
         $user->set('_storage', 'file');
         $userModel->setImage($joomlaUserId, $image, 'avatar');
         $userModel->setImage($joomlaUserId, $thumbnail, 'thumb');
         $user->save();
     }
 }
开发者ID:Simarpreet05,项目名称:joomla,代码行数:93,代码来源:facebook.php

示例12: getMetaDescriptions

 /**
  * Get meta description text format. Clean text and crop to 150 characters.
  *
  * @param string $text
  * @return string
  */
 public static function getMetaDescriptions($text)
 {
     $text = JFilterOutput::cleanText($text);
     $text = JString::trim($text);
     if (JString::strlen($text) <= 150) {
         return $text;
     }
     $text = JString::substr($text, 0, 150);
     $lastFullStop = JString::strrpos($text, '.');
     if ($lastFullStop !== false) {
         $text = JString::substr($text, 0, $lastFullStop + 1);
     }
     $text = JString::trim($text);
     return $text;
 }
开发者ID:abdullah929,项目名称:bulletin,代码行数:21,代码来源:helper.php

示例13: getParentPath

 /**
  * Get path of parent folder from path.
  *
  * @param string $path
  * @return string
  */
 public static function getParentPath($path)
 {
     if (($pos = JString::strrpos($path, DIRECTORY_SEPARATOR)) === false) {
         return null;
     }
     return JString::substr($path, 0, $pos);
 }
开发者ID:abdullah929,项目名称:bulletin,代码行数:13,代码来源:filesystem.php

示例14: prepareAudio

 public function prepareAudio($data, $file = null, $_copy = false)
 {
     $copy = $_copy;
     if ($this->tztask) {
         $copy = true;
     }
     if ($data) {
         if (isset($data['jform'])) {
             $data = $data['jform'];
         }
         if ($data['audio_soundcloud_id']) {
             $fileTypes = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
             $params = $this->getState('params');
             $_data = null;
             $_data = $this->_db->quote($data['audio_soundcloud_id']);
             $id = $this->getState($this->getName() . '.id');
             if (!$id) {
                 $id = $data['id'];
             }
             // Create folder to save thumb if this folder isn't created.
             $audioPath = $this->imageUrl . DIRECTORY_SEPARATOR . 'cache' . DIRECTORY_SEPARATOR . 'thumbnail' . DIRECTORY_SEPARATOR . $this->audioFolder;
             if (!JFolder::exists(JPATH_SITE . DIRECTORY_SEPARATOR . $audioPath)) {
                 JFolder::create(JPATH_SITE . DIRECTORY_SEPARATOR . $audioPath);
             }
             if (JFolder::exists(JPATH_SITE . DIRECTORY_SEPARATOR . $audioPath)) {
                 if (!JFile::exists(JPATH_SITE . DIRECTORY_SEPARATOR . $audioPath . DIRECTORY_SEPARATOR . 'index.html')) {
                     JFile::write(JPATH_SITE . DIRECTORY_SEPARATOR . $audioPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
                 }
             }
             // Check and set chmod folder again
             $chmodFolder = JPath::getPermissions($audioPath);
             if ($chmodFolder != 'rwxrwxrwx' || $chmodFolder != 'rwxr-xr-x') {
                 JPath::setPermissions($audioPath);
             }
             // Prepare data (Return string to save the database)
             //// Delete old thumbnail if delete checkbox input is checked
             if ($data['audio_soundcloud_delete_image'] && ($hiddenImage = $data['audio_soundcloud_hidden_image'])) {
                 $this->deleteThumb(null, $hiddenImage);
                 //                    // Delete old original thumbnail
                 //                    $org_path   = JPATH_SITE.DIRECTORY_SEPARATOR.$org_audioPath.DIRECTORY_SEPARATOR
                 //                        .JFile::getName($data['audio_soundcloud_hidden_image']);
                 //                    if(JFile::exists($org_path)){
                 //                        JFile::delete($org_path);
                 //                    }
             }
             if ($file && !empty($file['name'])) {
                 // If choose thumbnail from client
                 $destName = (!$data['alias'] ? uniqid() . 'tz_portfolio_' . time() : $data['alias']) . '-' . $id . '.' . JFile::getExt($file['name']);
                 $image = $this->uploadImageClient($file, $destName, $audioPath, $fileTypes, $this->_getImageSizes($params), $data['audio_soundcloud_hidden_image']);
             } elseif (!empty($data['audio_soundcloud_image_server'])) {
                 // If choose thumbnail from server
                 $destName = (!$data['alias'] ? uniqid() . 'tz_portfolio_' . time() : $data['alias']) . '-' . $id . '.' . JFile::getExt($data['audio_soundcloud_image_server']);
                 $image = $this->uploadImageServer($data['audio_soundcloud_image_server'], $destName, $audioPath, $this->_getImageSizes($params), $data['audio_soundcloud_hidden_image'], $copy);
             } else {
                 // Get thumbnail from soundcloud page
                 if ($data['audio_soundcloud_delete_image'] && ($hiddenImage = $data['audio_soundcloud_hidden_image'])) {
                     $data['audio_soundcloud_hidden_image'] = '';
                 }
                 if (!isset($data['audio_soundcloud_hidden_image']) || empty($data['audio_soundcloud_hidden_image'])) {
                     if ($client_id = $params->get('soundcloud_client_id', '4a24c193db998e3b88c34cad41154055')) {
                         // Register fetch object
                         $fetch = new Services_Yadis_PlainHTTPFetcher();
                         $url = 'http://api.soundcloud.com/tracks/' . $data['audio_soundcloud_id'] . '.json?client_id=' . $client_id;
                         if ($content = $fetch->get($url)) {
                             $content = json_decode($content->body);
                             $thumbUrl = null;
                             if ($content->artwork_url && !empty($content->artwork_url)) {
                                 $thumbUrl = $content->artwork_url;
                             } else {
                                 $audioUser = $content->user;
                                 if ($audioUser->avatar_url && !empty($audioUser->avatar_url)) {
                                     $thumbUrl = $audioUser->avatar_url;
                                 }
                             }
                             if ($thumbUrl) {
                                 if (JString::strrpos($thumbUrl, '-', 0) != false) {
                                     $thumbUrl = JString::substr($thumbUrl, 0, JString::strrpos($thumbUrl, '-', 0) + 1) . 't500x500.' . JFile::getExt($thumbUrl);
                                 }
                                 // Create folder tmp if not exists
                                 if (!JFolder::exists(JPATH_SITE . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $this->tzfolder)) {
                                     JFolder::create(JPATH_SITE . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $this->tzfolder);
                                 }
                                 if (JFolder::exists(JPATH_SITE . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $this->tzfolder)) {
                                     if (!JFile::exists(JPATH_SITE . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $this->tzfolder . 'index.html')) {
                                         JFile::write(JPATH_SITE . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $this->tzfolder . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
                                     }
                                 }
                                 // Save image from other server to this server (temp file)
                                 $fetch2 = new Services_Yadis_PlainHTTPFetcher();
                                 $audioTempPath = null;
                                 if ($audioTemp = $fetch2->get($thumbUrl)) {
                                     if (in_array($audioTemp->headers['Content-Type'], $fileTypes)) {
                                         $audioType = JFile::getExt($thumbUrl);
                                         if (preg_match('/(.*)(\\|\\/|\\:|\\*|\\?|\\"|\\<|\\>|\\|.*?)/i', $audioType, $match)) {
                                             $audioType = $match[1];
                                         }
                                         $audioTempPath = 'media' . DIRECTORY_SEPARATOR . $this->tzfolder . DIRECTORY_SEPARATOR . uniqid() . time() . '.' . $audioType;
                                         JFile::write(JPATH_SITE . DIRECTORY_SEPARATOR . $audioTempPath, $audioTemp->body);
                                     }
                                 }
//.........这里部分代码省略.........
开发者ID:Glonum,项目名称:tz_portfolio,代码行数:101,代码来源:article.php

示例15: truncate

 /**
  * Alternative to @truncater to truncate contents with HTML codes
  *
  * @since	1.3
  * @access	public
  * @param	string
  * @return
  */
 public static function truncate($text, $length = 250, $ending = '', $exact = false)
 {
     // Load site's language file
     FD::language()->loadSite();
     if (!$ending) {
         $ending = JText::_('COM_EASYSOCIAL_ELLIPSES');
     }
     // If the plain text is shorter than the maximum length, return the whole text
     if (JString::strlen(preg_replace('/<.*?>/', '', $text)) <= $length) {
         return $text;
     }
     // splits all html-tags to scanable lines
     preg_match_all('/(<.+?>)?([^<>]*)/s', $text, $lines, PREG_SET_ORDER);
     $total_length = JString::strlen($ending);
     $open_tags = array();
     $truncate = '';
     foreach ($lines as $line_matchings) {
         // if there is any html-tag in this line, handle it and add it (uncounted) to the output
         if (!empty($line_matchings[1])) {
             // if it's an "empty element" with or without xhtml-conform closing slash
             if (preg_match('/^<(\\s*.+?\\/\\s*|\\s*(img|br|input|hr|area|base|basefont|col|frame|isindex|link|meta|param)(\\s.+?)?)>$/is', $line_matchings[1])) {
                 // do nothing
                 // if tag is a closing tag
             } else {
                 if (preg_match('/^<\\s*\\/([^\\s]+?)\\s*>$/s', $line_matchings[1], $tag_matchings)) {
                     // delete tag from $open_tags list
                     $pos = array_search($tag_matchings[1], $open_tags);
                     if ($pos !== false) {
                         unset($open_tags[$pos]);
                     }
                     // if tag is an opening tag
                 } else {
                     if (preg_match('/^<\\s*([^\\s>!]+).*?>$/s', $line_matchings[1], $tag_matchings)) {
                         // add tag to the beginning of $open_tags list
                         array_unshift($open_tags, JString::strtolower($tag_matchings[1]));
                     }
                 }
             }
             // add html-tag to $truncate'd text
             $truncate .= $line_matchings[1];
         }
         // calculate the length of the plain text part of the line; handle entities as one character
         $content_length = JString::strlen(preg_replace('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|[0-9a-f]{1,6};/i', ' ', $line_matchings[2]));
         if ($total_length + $content_length > $length) {
             // the number of characters which are left
             $left = $length - $total_length;
             $entities_length = 0;
             // search for html entities
             if (preg_match_all('/&[0-9a-z]{2,8};|&#[0-9]{1,7};|[0-9a-f]{1,6};/i', $line_matchings[2], $entities, PREG_OFFSET_CAPTURE)) {
                 // calculate the real length of all entities in the legal range
                 foreach ($entities[0] as $entity) {
                     if ($entity[1] + 1 - $entities_length <= $left) {
                         $left--;
                         $entities_length += JString::strlen($entity[0]);
                     } else {
                         // no more characters left
                         break;
                     }
                 }
             }
             $truncate .= JString::substr($line_matchings[2], 0, $left + $entities_length);
             // maximum lenght is reached, so get off the loop
             break;
         } else {
             $truncate .= $line_matchings[2];
             $total_length += $content_length;
         }
         // if the maximum length is reached, get off the loop
         if ($total_length >= $length) {
             break;
         }
     }
     // if the words shouldn't be cut in the middle...
     if (!$exact) {
         // ...search the last occurance of a space...
         $spacepos = JString::strrpos($truncate, ' ');
         if (isset($spacepos)) {
             // ...and cut the text in this position
             $truncate = JString::substr($truncate, 0, $spacepos);
         }
     }
     // add the defined ending to the text
     $truncate .= $ending;
     // close all unclosed html-tags
     foreach ($open_tags as $tag) {
         $truncate .= '</' . $tag . '>';
     }
     $uid = uniqid();
     $theme = FD::themes();
     $theme->set('truncated', $truncate);
     $theme->set('uid', $uid);
     $theme->set('text', $text);
//.........这里部分代码省略.........
开发者ID:BetterBetterBetter,项目名称:B3App,代码行数:101,代码来源:string.php


注:本文中的JString::strrpos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。