Codeigniter Rss,网站地图,路由配置
_ _,今天在成果不错,完成了网站的三个功能,RSS订阅,自动写网站地图,与路由的配置,好了,现在一 一记录下来.
一、路由配置
在未设定路由时,路径是这样的
[php]
http://www.xiuxiandou.com/content/it/13533/硅谷传奇投资人讲述初创企业家易犯的4大错误
content =>controller,it=>method,13533=>id,硅谷传奇投资人讲述初创企业家易犯的4大错误=>title
http://www.xiuxiandou.com/content/it/13533/硅谷传奇投资人讲述初创企业家易犯的4大错误
content =>controller,it=>method,13533=>id,硅谷传奇投资人讲述初创企业家易犯的4大错误=>title
设置路由后,访问路径为:
[php]
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
其它的类似,路径配置为
[php]
/*sitemap使用*/
$route['content-(:any)-(:num)'] = "content/$1/$2";
/*前台页面显示路由*/
$route['content-(:any)-(:num)-(:any)'] = "content/$1/$2/$3";
/*RSS订阅路由*/
$route['feed-rss-(:any)'] = "feed/rss/$1";
/*博客路由*/
$route['blog-(:num)-(:any)'] = "blog/blogview/$1/$2";
$route['blog-blogtypes-(:any)']="blog/blogtypes/$1";
/**留言**/
$route['me'] = "indexs/me";
/**模板**/
$route["template"]="indexs/template";
/**今日更新**/
$route["indexs-(:any)"]="indexs/$1";
/*sitemap使用*/
$route['content-(:any)-(:num)'] = "content/$1/$2";
/*前台页面显示路由*/
$route['content-(:any)-(:num)-(:any)'] = "content/$1/$2/$3";
/*RSS订阅路由*/
$route['feed-rss-(:any)'] = "feed/rss/$1";
/*博客路由*/
$route['blog-(:num)-(:any)'] = "blog/blogview/$1/$2";
$route['blog-blogtypes-(:any)']="blog/blogtypes/$1";
/**留言**/
$route['me'] = "indexs/me";
/**模板**/
$route["template"]="indexs/template";
/**今日更新**/
$route["indexs-(:any)"]="indexs/$1";
二、RSS
在libraries目录下创建Rss.php文件,主要负责生成RSS格式的数据内容
[php]
/**
* Rss
*/
class Rss{
public function write_rss($in_datas){
$CI=& get_instance();
$CI->load->helper('xml');
$CI->load->helper('text');
$xml_str=""
."
if(!emptyempty($in_datas)){
$xml_str.="
."
.""
."".$in_datas["feed_url"].""
."
."
."
."
."
."
if(!emptyempty($in_datas["xml_datas"])){
foreach($in_datas["xml_datas"] as $k => $v){
foreach($v as $xml){
$xml_str.="
."
."".site_url("content-$k-$xml->id-".xml_convert($CI->mytool->get_title($xml->subject))).""
."
."
."
."
."";
}
}
}
$xml_str.="";
}
$xml_str.="";
return $xml_str;
}
}
/**
* Rss
*/
class Rss{
public function write_rss($in_datas){
$CI=& get_instance();
$CI->load->helper('xml');
$CI->load->helper('text');
$xml_str=""
."
if(!empty($in_datas)){
$xml_str.="
."
.""
."".$in_datas["feed_url"].""
."
."
."
."
."
."
if(!empty($in_datas["xml_datas"])){
foreach($in_datas["xml_datas"] as $k => $v){
foreach($v as $xml){
$xml_str.="
."
."".site_url("content-$k-$xml->id-".xml_convert($CI->mytool->get_title($xml->subject))).""
."
."
."
."
."";
}
}
}
$xml_str.="";
}
$xml_str.="";
return $xml_str;
}
}
2、RSS控制类
[php]
if(!defined('BASEPATH')) exit('No direct script access allowed');
/**
* 2013-2-25:RSS订阅
*/
class Feed extends CI_Controller{
public function index(){
$it=$this->mcom_model->query_Bywhere(mymsg::BT_ITINFO,array("riqi"=>$this->mytool->get_ymd()));
$game=$this->mcom_model->query_Bywhere(mymsg::BT_GAME,array("riqi"=>$this->mytool->get_ymd()));
$blog=$this->mcom_model->query_Bywhere(mymsg::BT_BLOG,array("riqi"=>$this->mytool->get_ymd()));
$movie=$this->mcom_model->query_Bywhere(mymsg::BT_MOVIE,array("riqi"=>$this->mytool->get_ymd()));
$book=$this->mcom_model->query_Bywhere(mymsg::BT_BOOK,array("riqi"=>$this->mytool->get_ymd()));
$in_datas["xml_datas"]=array("it"=>$it,"game"=>$game,"blog"=>$blog,"movie"=>$movie,"book"=>$book);
$this->_comm($in_datas);
}
public function rss(){
$this->load->helper('xml');
$this->load->helper('text');
$key= $this->uri->segment(3);
$db_table= $key=="it"?"bt_itinfo":"bt_$key";
$table_exist=$this->mcom_model->table_exists($db_table);
if($table_exist){
$in_datas["xml_datas"]=array($key=>$this->mcom_model->query_Bywhere($db_table,array("riqi"=>$this->mytool->get_ymd())));
$this->_comm($in_datas);
}else{
show_404();
}
}
private function _comm($in_datas){
$in_datas['feed_name'] = "休闲豆 RSS";
$in_datas['feed_url'] = base_url()."free";
$in_datas['page_description'] = '休闲豆,IT资讯,IT电子书,游戏种子,电影BT RSS';
$in_datas['creator_email'] = '1963612630@qq.com';
$in_datas['page_language']="zh-zn";
$out_datas["xml"]=$this->rss->write_rss($in_datas);
header("Content-Type: text/xml");
$this->load->view("rss",$out_datas);
}
}
if(!defined('BASEPATH')) exit('No direct script access allowed');
/**
* 2013-2-25:RSS订阅
*/
class Feed extends CI_Controller{
public function index(){
$it=$this->mcom_model->query_Bywhere(mymsg::BT_ITINFO,array("riqi"=>$this->mytool->get_ymd()));
$game=$this->mcom_model->query_Bywhere(mymsg::BT_GAME,array("riqi"=>$this->mytool->get_ymd()));
$blog=$this->mcom_model->query_Bywhere(mymsg::BT_BLOG,array("riqi"=>$this->mytool->get_ymd()));
$movie=$this->mcom_model->query_Bywhere(mymsg::BT_MOVIE,array("riqi"=>$this->mytool->get_ymd()));
$book=$this->mcom_model->query_Bywhere(mymsg::BT_BOOK,array("riqi"=>$this->mytool->get_ymd()));
$in_datas["xml_datas"]=array("it"=>$it,"game"=>$game,"blog"=>$blog,"movie"=>$movie,"book"=>$book);
$this->_comm($in_datas);
}
public function rss(){
$this->load->helper('xml');
$this->load->helper('text');
$key= $this->uri->segment(3);
$db_table= $key=="it"?"bt_itinfo":"bt_$key";
$table_exist=$this->mcom_model->table_exists($db_table);
if($table_exist){
$in_datas["xml_datas"]=array($key=>$this->mcom_model->query_Bywhere($db_table,array("riqi"=>$this->mytool->get_ymd())));
$this->_comm($in_datas);
}else{
show_404();
}
}
private function _comm($in_datas){
$in_datas['feed_name'] = "休闲豆 RSS";
$in_datas['feed_url'] = base_url()."free";
$in_datas['page_description'] = '休闲豆,IT资讯,IT电子书,游戏种子,电影BT RSS';
$in_datas['creator_email'] = '1963612630@qq.com';
$in_datas['page_language']="zh-zn";
$out_datas["xml"]=$this->rss->write_rss($in_datas);
header("Content-Type: text/xml");
$this->load->view("rss",$out_datas);
}
}
运行
[html]
生成结果如下
[php]
http://www.xiuxiandou.com/free
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
Qualys 创始人兼 CEO 菲利普`科尔图特
北京时间 2 月 25 日消息,据国外媒体报道,美国云计算安全公司…
]]>
....
http://www.xiuxiandou.com/free
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
http://www.xiuxiandou.com/content-it-13533-硅谷传奇投资人讲述初创企业家易犯的4大错误
Qualys 创始人兼 CEO 菲利普`科尔图特
北京时间 2 月 25 日消息,据国外媒体报道,美国云计算安全公司…
]]>
....
3、网站地图
网站地图主要根据sitemaps.xml协议拼写的XML,协议地址:http://www.sitemaps.org/protocol.html
1、加载libraries目录下的sitemaps.php类,内容如下
[php]
/**
* A class for generating XML sitemaps
*
* @author Philipp Dörner
* @version 0.7
* @access public
* @package sitemaps
*/
class Sitemaps
{
var $items = array();
function Sitemaps()
{
$CI =& get_instance();
$CI->config->load('sitemaps');
}
/**
* Adds a new item to the urlset
*
* @param array $new_item
* @access public
*/
function add_item($new_item)
{
$this->items[] = $new_item;
}
/**
* Adds an array of items to the urlset
*
* @param array $new_items array of items
* @access public
*/
function add_item_array($new_items)
{
$this->items = array_merge($this->items, $new_items);
}
/**
* Generates the sitemap XML data
*
* @param string $file_name (optional) if file name is supplied the XML data is saved in it otherwise returned as a string
* @param bool $gzip (optional) compress sitemap, overwrites config item 'sitemaps_gzip'
* @access public
* @return string
*/
function build($file_name = null, $gzip = NULL)
{
$CI =& get_instance();
$map = $CI->config->item('sitemaps_header') . "\n";
foreach($this->items as $item)
{
$item['loc'] = htmlentities($item['loc'], ENT_QUOTES);
$map .= "\t
$attributes = array("lastmod", "changefreq", "priority");
foreach($attributes AS $attr)
{
if(isset($item[$attr]))
{
$map .= "\t\t" . $item[$attr] . "$attr>\n";
}
}
$map .= "\t\n\n";
}
unset($this->items);
$map .= $CI->config->item('sitemaps_footer');
if( ! is_null($file_name))
{
$fh = fopen($file_name, 'a');//w
fwrite($fh, $map);
fclose($fh);
if($CI->config->item('sitemaps_filesize_error') && filesize($file_name) > 1024 * 1024 * 30)
{
show_error('Your sitemap is bigger than 10MB, most search engines will not accept it.');
}
if($gzip OR (is_null($gzip) && $CI->config->item('sitemaps_gzip')))
{
$gzdata = gzencode($map, 9);
$file_gzip = str_replace("{file_name}", $file_name, $CI->config->item('sitemaps_gzip_path'));
$fp = fopen($file_gzip, "a");//w
fwrite($fp, $gzdata);
fclose($fp);
// Delete the uncompressed sitemap
unlink($file_name);
return $file_gzip;
}
return $file_name;
}
else
{
return $map;
}
}
/**
* Generate a sitemap index file pointing to other sitemaps you previously built
*
* @param array $urls array of urls, each being an array with at least a loc index
* @param string $file_name (optional) if file name is supplied the XML data is saved in it otherwise returned as a string
* @param bool $gzip (optional) compress sitemap, overwrites config item 'sitemaps_gzip'
* @access public
* @return string
*/
function build_index($urls, $file_name = null, $gzip = null)
{
$CI =& get_instance();
$index = $CI->config->item('sitemaps_index_header') . "\n";
foreach($urls as $url)
{
$url['loc'] = htmlentities($url['loc'], ENT_QUOTES);
$index .= "\t
if(isset($url['lastmod']))
{
$index .= "\t\t
}
$index .= "\t\n\n";
}
$index .= $CI->config->item('sitemaps_index_footer');
if( ! is_null($file_name))
{
$fh = fopen($file_name, 'w');
fwrite($fh, $index);
fclose($fh);
if($CI->config->item('sitemaps_filesize_error') && filesize($file_name) > 1024 * 1024 * 10)
{
show_error('Your sitemap index is bigger than 10MB, most search engines will not accept it.');
}
if($gzip OR (is_null($gzip) && $CI->config->item('sitemaps_index_gzip')))
{
$gzdata = gzencode($index, 9);
$file_gzip = str_replace("{file_name}", $file_name, $CI->config->item('sitemaps_index_gzip_path'));
$fp = fopen($file_gzip, "w");
fwrite($fp, $gzdata);
fclose($fp);
// Delete the uncompressed sitemap index
unlink($file_name);
return $file_gzip;
}
return $file_name;
}
else
{
return $index;
}
}
/**
* Notify search engines of your updates sitemap
*
* @param string $url_xml absolute URL of your sitemap, use Codeigniter's site_url()
* @param array $search_engines array of search engines to ping, see config file for notes
* @access public
* @return array HTTP reponse codes
*/
function ping($url_xml, $search_engines = NULL)
{
$CI =& get_instance();
if(is_null($search_engines))
{
$search_engines = $CI->config->item('sitemaps_search_engines');
}
$statuses = array();
foreach($search_engines AS $engine)
{
$status = 0;
if($fp = @fsockopen($engine['host'], 80))
{
$engine['url'] = emptyempty($engine['url']) ? "/ping?sitemap=" : $engine['url'];
$req = 'GET ' . $engine['url'] .
urlencode($url_xml) . " HTTP/1.1\r\n" .
"Host: " . $engine['host'] . "\r\n" .
$CI->config->item('sitemaps_user_agent') .
"Connection: Close\r\n\r\n";
fwrite($fp, $req);
while( ! feof($fp))
{
if(@preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m))
{
$status = intval($m[1]);
break;
}
}
fclose($fp);
}
$statuses[] = array("host" => $engine['host'], "status" => $status, "request" => $req);
}
if($CI->config->item('sitemaps_log_http_responses') OR $CI->config->item('sitemaps_debug'))
{
foreach($statuses AS $reponse)
{
$message = "Sitemaps: " . $reponse['host'] . " responded with HTTP status " . $reponse['status'];
if($CI->config->item('sitemaps_log_http_responses'))
{
$level = $reponse['status'] == 200 ? 'debug' : 'error';
log_message($level, $message);
}
if($CI->config->item('sitemaps_debug'))
{
echo "
" . $message . " after request:
\n" . $reponse['request'] . "
}
}
}
return $statuses;
}
}
/**
* A class for generating XML sitemaps
*
* @author Philipp Dörner
* @version 0.7
* @access public
* @package sitemaps
*/
class Sitemaps
{
var $items = array();
function Sitemaps()
{
$CI =& get_instance();
$CI->config->load('sitemaps');
}
/**
* Adds a new item to the urlset
*
* @param array $new_item
* @access public
*/
function add_item($new_item)
{
$this->items[] = $new_item;
}
/**
* Adds an array of items to the urlset
*
* @param array $new_items array of items
* @access public
*/
function add_item_array($new_items)
{
$this->items = array_merge($this->items, $new_items);
}
/**
* Generates the sitemap XML data
*
* @param string $file_name (optional) if file name is supplied the XML data is saved in it otherwise returned as a string
* @param bool $gzip (optional) compress sitemap, overwrites config item 'sitemaps_gzip'
* @access public
* @return string
*/
function build($file_name = null, $gzip = NULL)
{
$CI =& get_instance();
$map = $CI->config->item('sitemaps_header') . "\n";
foreach($this->items as $item)
{
$item['loc'] = htmlentities($item['loc'], ENT_QUOTES);
$map .= "\t
$attributes = array("lastmod", "changefreq", "priority");
foreach($attributes AS $attr)
{
if(isset($item[$attr]))
{
$map .= "\t\t" . $item[$attr] . "$attr>\n";
}
}
$map .= "\t\n\n";
}
unset($this->items);
$map .= $CI->config->item('sitemaps_footer');
if( ! is_null($file_name))
{
$fh = fopen($file_name, 'a');//w
fwrite($fh, $map);
fclose($fh);
if($CI->config->item('sitemaps_filesize_error') && filesize($file_name) > 1024 * 1024 * 30)
{
show_error('Your sitemap is bigger than 10MB, most search engines will not accept it.');
}
if($gzip OR (is_null($gzip) && $CI->config->item('sitemaps_gzip')))
{
$gzdata = gzencode($map, 9);
$file_gzip = str_replace("{file_name}", $file_name, $CI->config->item('sitemaps_gzip_path'));
$fp = fopen($file_gzip, "a");//w
fwrite($fp, $gzdata);
fclose($fp);
// Delete the uncompressed sitemap
unlink($file_name);
return $file_gzip;
}
return $file_name;
}
else
{
return $map;
}
}
/**
* Generate a sitemap index file pointing to other sitemaps you previously built
*
* @param array $urls array of urls, each being an array with at least a loc index
* @param string $file_name (optional) if file name is supplied the XML data is saved in it otherwise returned as a string
* @param bool $gzip (optional) compress sitemap, overwrites config item 'sitemaps_gzip'
* @access public
* @return string
*/
function build_index($urls, $file_name = null, $gzip = null)
{
$CI =& get_instance();
$index = $CI->config->item('sitemaps_index_header') . "\n";
foreach($urls as $url)
{
$url['loc'] = htmlentities($url['loc'], ENT_QUOTES);
$index .= "\t
if(isset($url['lastmod']))
{
$index .= "\t\t
}
$index .= "\t\n\n";
}
$index .= $CI->config->item('sitemaps_index_footer');
if( ! is_null($file_name))
{
$fh = fopen($file_name, 'w');
fwrite($fh, $index);
fclose($fh);
if($CI->config->item('sitemaps_filesize_error') && filesize($file_name) > 1024 * 1024 * 10)
{
show_error('Your sitemap index is bigger than 10MB, most search engines will not accept it.');
}
if($gzip OR (is_null($gzip) && $CI->config->item('sitemaps_index_gzip')))
{
$gzdata = gzencode($index, 9);
$file_gzip = str_replace("{file_name}", $file_name, $CI->config->item('sitemaps_index_gzip_path'));
$fp = fopen($file_gzip, "w");
fwrite($fp, $gzdata);
fclose($fp);
// Delete the uncompressed sitemap index
unlink($file_name);
return $file_gzip;
}
return $file_name;
}
else
{
return $index;
}
}
/**
* Notify search engines of your updates sitemap
*
* @param string $url_xml absolute URL of your sitemap, use Codeigniter's site_url()
* @param array $search_engines array of search engines to ping, see config file for notes
* @access public
* @return array HTTP reponse codes
*/
function ping($url_xml, $search_engines = NULL)
{
$CI =& get_instance();
if(is_null($search_engines))
{
$search_engines = $CI->config->item('sitemaps_search_engines');
}
$statuses = array();
foreach($search_engines AS $engine)
{
$status = 0;
if($fp = @fsockopen($engine['host'], 80))
{
$engine['url'] = empty($engine['url']) ? "/ping?sitemap=" : $engine['url'];
$req = 'GET ' . $engine['url'] .
urlencode($url_xml) . " HTTP/1.1\r\n" .
"Host: " . $engine['host'] . "\r\n" .
$CI->config->item('sitemaps_user_agent') .
"Connection: Close\r\n\r\n";
fwrite($fp, $req);
while( ! feof($fp))
{
if(@preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m))
{
$status = intval($m[1]);
break;
}
}
fclose($fp);
}
$statuses[] = array("host" => $engine['host'], "status" => $status, "request" => $req);
}
if($CI->config->item('sitemaps_log_http_responses') OR $CI->config->item('sitemaps_debug'))
{
foreach($statuses AS $reponse)
{
$message = "Sitemaps: " . $reponse['host'] . " responded with HTTP status " . $reponse['status'];
if($CI->config->item('sitemaps_log_http_responses'))
{
$level = $reponse['status'] == 200 ? 'debug' : 'error';
log_message($level, $message);
}
if($CI->config->item('sitemaps_debug'))
{
echo "
" . $message . " after request:
\n" . $reponse['request'] . "
}
}
}
return $statuses;
}
}
2、sitemap.php控制类,注意这里不要与libraries中的sitemaps.php同名,不然会报错的.
if(!defined('BASEPATH')) exit('No direct script access allowed');
/**
 

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Peta lalai pada iPhone ialah Peta, pembekal geolokasi proprietari Apple. Walaupun peta semakin baik, ia tidak berfungsi dengan baik di luar Amerika Syarikat. Ia tiada apa-apa untuk ditawarkan berbanding Peta Google. Dalam artikel ini, kami membincangkan langkah yang boleh dilaksanakan untuk menggunakan Peta Google untuk menjadi peta lalai pada iPhone anda. Cara Menjadikan Peta Google Peta Lalai dalam iPhone Menetapkan Peta Google sebagai aplikasi peta lalai pada telefon anda adalah lebih mudah daripada yang anda fikirkan. Ikut langkah di bawah – Langkah prasyarat – Anda mesti memasang Gmail pada telefon anda. Langkah 1 – Buka AppStore. Langkah 2 – Cari “Gmail”. Langkah 3 – Klik di sebelah apl Gmail

Kedua-dua telefon bimbit vivox100s dan x100 adalah model yang mewakili dalam barisan produk telefon mudah alih vivo, masing-masing mewakili tahap teknologi canggih vivo dalam tempoh masa yang berbeza. Artikel ini akan menjalankan perbandingan terperinci antara kedua-dua telefon mudah alih ini dari segi perbandingan prestasi dan analisis fungsi untuk membantu pengguna memilih telefon mudah alih yang sesuai dengan mereka dengan lebih baik. Mula-mula, mari kita lihat perbandingan prestasi antara vivox100s dan x100. vivox100s dilengkapi dengan yang terbaru

Memahami Linux Bashrc: Fungsi, Konfigurasi dan Penggunaan Dalam sistem Linux, Bashrc (BourneAgainShellruncommands) ialah fail konfigurasi yang sangat penting, yang mengandungi pelbagai arahan dan tetapan yang dijalankan secara automatik apabila sistem dimulakan. Fail Bashrc biasanya terletak dalam direktori rumah pengguna dan merupakan fail tersembunyi Fungsinya adalah untuk menyesuaikan persekitaran Bashshell untuk pengguna. 1. Persekitaran tetapan fungsi Bashrc

Dengan perkembangan pesat Internet, konsep media kendiri telah berakar umbi dalam hati orang ramai. Jadi, apakah sebenarnya media kendiri? Apakah ciri dan fungsi utamanya? Seterusnya, kita akan meneroka isu-isu ini satu demi satu. 1. Apakah sebenarnya media kendiri? Kami-media, seperti namanya, bermakna anda adalah media. Ia merujuk kepada pembawa maklumat yang melaluinya individu atau pasukan boleh mencipta, mengedit, menerbitkan dan menyebarkan kandungan secara bebas melalui platform Internet. Berbeza dengan media tradisional, seperti akhbar, televisyen, radio, dan lain-lain, media kendiri lebih interaktif dan diperibadikan, membolehkan semua orang menjadi pengeluar dan penyebar maklumat. 2. Apakah ciri dan fungsi utama media kendiri? 1. Ambang rendah: Peningkatan media kendiri telah menurunkan ambang untuk memasuki industri media Peralatan yang rumit dan pasukan profesional tidak lagi diperlukan.

Memandangkan Xiaohongshu menjadi popular di kalangan golongan muda, semakin ramai orang mula menggunakan platform ini untuk berkongsi pelbagai aspek pengalaman dan pandangan hidup mereka. Cara mengurus berbilang akaun Xiaohongshu dengan berkesan telah menjadi isu utama. Dalam artikel ini, kami akan membincangkan beberapa ciri perisian pengurusan akaun Xiaohongshu dan meneroka cara mengurus akaun Xiaohongshu anda dengan lebih baik. Apabila media sosial berkembang, ramai orang mendapati diri mereka perlu mengurus berbilang akaun sosial. Ini juga merupakan satu cabaran untuk pengguna Xiaohongshu. Sesetengah perisian pengurusan akaun Xiaohongshu boleh membantu pengguna mengurus berbilang akaun dengan lebih mudah, termasuk penerbitan kandungan automatik, penerbitan berjadual, analisis data dan fungsi lain. Melalui alatan ini, pengguna boleh mengurus akaun mereka dengan lebih cekap dan meningkatkan pendedahan dan perhatian akaun mereka. Di samping itu, perisian pengurusan akaun Xiaohongshu mempunyai

Memandangkan Xiaohongshu menjadi semakin popular di kalangan golongan muda, semakin ramai orang memilih untuk membuka kedai di Xiaohongshu. Ramai penjual baru menghadapi kesukaran semasa menyediakan alamat kedai mereka dan tidak tahu cara menambahkan alamat kedai pada peta. 1. Bagaimana untuk menambah alamat kedai pada peta di Xiaohongshu? 1. Pertama, pastikan kedai anda mempunyai akaun berdaftar di Xiaohongshu dan telah berjaya membuka kedai. 2. Log masuk ke akaun Xiaohongshu anda, masukkan bahagian belakang kedai, dan cari pilihan "Tetapan Kedai". 3. Pada halaman tetapan kedai, cari lajur "Alamat Kedai" dan klik "Tambah Alamat". 4. Dalam halaman menambah alamat yang muncul, isikan maklumat alamat terperinci kedai, termasuk wilayah, bandar, daerah, daerah, jalan, nombor rumah, dsb. 5. Selepas mengisi, klik butang "Confirm Add". Xiaohongshu akan memberikan anda alamat

Tajuk: Cara mengkonfigurasi dan memasang FTPS dalam sistem Linux, contoh kod khusus diperlukan Dalam sistem Linux, FTPS ialah protokol pemindahan fail yang selamat Berbanding dengan FTP, FTPS menyulitkan data yang dihantar melalui protokol TLS/SSL, yang menambah baik. Keselamatan penghantaran data. Dalam artikel ini, kami akan memperkenalkan cara mengkonfigurasi dan memasang FTPS dalam sistem Linux dan memberikan contoh kod khusus. Langkah 1: Pasang vsftpd Buka terminal dan masukkan arahan berikut untuk memasang vsftpd: sudo

Setahun selepas pelancarannya, Peta Google telah melancarkan ciri baharu. Sebaik sahaja anda menetapkan laluan ke destinasi anda pada peta, ia meringkaskan laluan perjalanan anda. Setelah perjalanan anda bermula, anda boleh "Semak imbas" panduan laluan daripada skrin kunci telefon anda. Anda boleh menggunakan Peta Google untuk melihat anggaran masa ketibaan dan laluan anda. Sepanjang perjalanan anda, anda boleh melihat maklumat navigasi pada skrin kunci anda dan dengan membuka kunci telefon anda, anda boleh melihat maklumat navigasi tanpa mengakses Peta Google. Dengan membuka kunci telefon anda, anda boleh melihat maklumat navigasi tanpa mengakses Peta Google. Dengan membuka kunci telefon anda, anda boleh melihat maklumat navigasi tanpa mengakses Peta Google Dengan membuka kunci telefon anda, anda boleh melihat maklumat navigasi tanpa mengakses Peta Google Dengan membuka kunci telefon anda, anda boleh melihat maklumat navigasi tanpa mengakses Peta Google anda. anda boleh melihat maklumat navigasi tanpa mengakses Peta Google.
