当前位置:网站首页>PHP pseudo original API docking method
PHP pseudo original API docking method
2022-07-04 20:04:00 【Yangyang 2013 haha】
Today I want to sum up my php Pseudo original api Docking method , First we know that PHP yes PHP Hypertext preprocessor ( Hypertext and processors ) Abbreviation , The sound of thunder on the day of waking insects , Wake up the hibernating insects . This method is called recursive abbreviation , If opportunity doesn't knock on your door , Then open the door by yourself .
php Pseudo original api Docking source code :
<?php
set_time_limit(270);
error_reporting(E_ERROR | E_WARNING | E_PARSE);
define('TITLE_SEPAR', 'xxx**xxx');
define('TITLE_SEPAR2', '262661');
$url = 'http://api.xiaofamao.com/api.php?json=0&v=1&key= You need to apply for it yourself KEY';
$content_tag_name = ' Content ';
$headdd = '';
$taill = '';
switch($LabelArray['PageType'])
{
case 'List':// Process list page , Can only handle html
break;
case 'Pages':// Process multiple pages , Can only handle html
break;
case 'Content':// Process default pages , Can only handle html
break;
case 'Save':// Tag values can only be processed when saving
// Save the original
try {
/**********************************************************************/
// This step is used to obtain pseudo original articles
/**********************************************************************/
$LabelArray[$content_tag_name] = curl_request($url, array('wenzhang'=>$LabelArray[$content_tag_name]));
$LabelArray[' title '] = get_ai_title2($LabelArray[' title ']);
}
catch (Exception $e) {
$LabelArray[' title '] .= $e->getMessage();
$LabelArray[$content_tag_name] .= $e->getMessage();
}
break;
default:
//$LabelArray[$content_tag_name]=curl_request($url, array('wenzhang'=>$LabelArray[$content_tag_name] ));
}
echo serialize($LabelArray);
function get_ai_title2($title) {
$title = urlencode($title);
$title_ai = curl_request($url);
return $title_ai;
}
function compose_article($title, $content) {
$separator = compose_separator();
return $title.$separator.$content;
}
function compose_separator() {
return PHP_EOL.'('.TITLE_SEPAR2.')'.PHP_EOL;
}
function fix_separator($article) {
return $article;
}
function get_wyc_article($str) {
global $url;
$separator = compose_separator();
$separator = str_replace(PHP_EOL, '', $separator);
$wyc = curl_request($url, array('wenzhang'=>$str));
$wyc_f = $wyc;
$wyc = fix_separator($wyc);
$wyc = explode($separator, $wyc);
if (isset($wyc[0])){
$wyc[0] = str_replace(' title :', '', $wyc[0]);
$wyc[0] = str_replace(' title :', '', $wyc[0]);
$wyc[0] = str_replace(' Objective :', '', $wyc[0]);
$wyc[0] = str_replace(' Objective :', '', $wyc[0]);
$wyc[0] = 'xx`xx'.$wyc[0];
$wyc[0] = str_replace('xx`xx topic ', '', $wyc[0]);
$wyc[0] = str_replace('xx`xx', '', $wyc[0]);
}
//if (isset($wyc[1])) $wyc[1] = trim($wyc[1]);
//$wyc[1] = $wyc_f.'jjjjjjjj'.$wyc[1];
return $wyc;
}
function get_wyc_title($str) {
$title = get_wyc_article($str.PHP_EOL.PHP_EOL.PHP_EOL.$str.PHP_EOL.PHP_EOL.PHP_EOL.$str);
$title = fix_newline($title);
$title = explode(PHP_EOL, $title);
return $title[0];
}
function get_keywords($title, $contents) {
$kws = curl_request($url_kw, array(
'title'=>$title,
'len'=>100,
'text'=>$contents));
return $kws;
}
function remove_alt($contents) {
$contents = preg_replace('/alt=\"(.*)\"/', '', $contents);
return $contents;
}
function fix_title($contents) {
$punctuation_symbol = array('.', '?', ',', ':', ';', '、', '!',
'.', '?', ',', ':', ';', '!');
$contents = str_replace($punctuation_symbol, '', $contents);
return $contents;
}
function br2newline($contents) {
$contents = str_replace('<br>', PHP_EOL, $contents);
$contents = str_replace('<br/>', PHP_EOL, $contents);
$contents = str_replace('<br />', PHP_EOL, $contents);
$contents = str_replace('<BR/>', PHP_EOL, $contents);
$contents = str_replace('<BR>', PHP_EOL, $contents);
$contents = str_replace('<BR />', PHP_EOL, $contents);
return $contents;
}
function newline2br($contnets) {
$contnets = str_replace(PHP_EOL, "<br>", $contnets);
// $contnets = str_replace('><br><', '><', $contnets);
$contnets = str_replace('<p><br>', '<p>', $contnets);
return $contnets;
}
function delete_newline($contents) {
$contents = fix_newline($contents);
// $contents = str_replace(PHP_EOL.PHP_EOL, PHP_EOL, $contents);
// $contents = str_replace('>'.PHP_EOL, '>', $contents);
return $contents;
}
function reset_newline_win($contents) {
// Optimize line breaks
$contents = str_replace("\r\n", "\n", $contents);
$contents = str_replace("\r", "\n", $contents);
$contents = str_replace("\n", PHP_EOL, $contents);
return $contents;
}
function fix_newline($data) {
$data = str_replace("\r", "\n", $data);
while(strpos($data, "\n\n") !== false) {
$data = str_replace("\n\n", "\n", $data);
}
$data = str_replace("\n", PHP_EOL, $data);
return $data;
}
function clean_contents($contents) {
// $str = preg_replace('#<([^>\s/]+)[^>]*>#','<$1>', $contents);
// return $str;
$sa = new cleanHtml;
$sa->allow = array( 'src' );
$sa->exceptions = array(
'img' => array( 'src', 'alt' ),
//'a' => array( 'href', 'title' ),
'iframe'=>array('src','frameborder'),
);
$str = $sa->strip( $contents );
return $str;
}
function xfm_strong_str_replace_once($search, $replace, $subject) {
$firstChar = strpos($subject, $search);
if($firstChar !== false) {
$beforeStr = substr($subject,0,$firstChar);
$afterStr = substr($subject, $firstChar + strlen($search));
return $beforeStr.$replace.$afterStr;
} else {
return $subject;
}
}
// Parameters 1: Access to the URL, Parameters 2:post data ( If you don't fill in it, it will be GET), Parameters 3: The submitted $cookies, Parameters 4: Whether to return $cookies
function curl_request($url,$post='',$cookie='', $returnCookie=0){
if (! extension_loaded('curl')) {
file_exists('./ext/php_curl.dll') && dl('php_curl.dll'); // Load extension
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
if (ini_get('open_basedir') == '' && strtolower(ini_get('safe_mode')) != 'on'){
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
}
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
if($post) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
}
if($cookie) {
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
}
curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
curl_setopt($curl, CURLOPT_TIMEOUT, 150);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
if (curl_errno($curl)) {
return curl_error($curl);
}
curl_close($curl);
if($returnCookie){
list($header, $body) = explode("\r\n\r\n", $data, 2);
preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
$info['cookie'] = substr($matches[1][0], 1);
$info['content'] = $body;
return $info;
}else{
return $data;
}
}
//echo $tag;
// Calculate the length of Chinese string
function utf8_strlen($string = null) {
// Decompose a string into units
preg_match_all("/./us", $string, $match);
// Returns the number of units
return count($match[0]);
}
function reg_escape( $str )
{
$conversions = array( "^" => "\^", "[" => "\[", "." => "\.", "$" => "\$", "{" => "\{", "*" => "\*", "(" => "\(", "\\" => "\\\\", "/" => "\/", "+" => "\+", ")" => "\)", "|" => "\|", "?" => "\?", "<" => "\<", ">" => "\>" );
return strtr( $str, $conversions );
}
/**
* Strip attribute Class
* Remove attributes from XML elements
* @author David (semlabs.co.uk)
* @version 0.2.1
*/
class cleanHtml{
public $str = '';
public $allow = array();
public $exceptions = array();
public $ignore = array();
public function strip( $str )
{
$this->str = $str;
if( is_string( $str ) && strlen( $str ) > 0 )
{
$res = $this->findElements();
if( is_string( $res ) )
return $res;
$nodes = $this->findAttributes( $res );
$this->removeAttributes( $nodes );
}
return $this->str;
}
private function findElements()
{
# Create an array of elements with attributes
$nodes = array();
preg_match_all( "/<([^ !\/\>\n]+)([^>]*)>/i", $this->str, $elements );
foreach( $elements[1] as $el_key => $element )
{
if( $elements[2][$el_key] )
{
$literal = $elements[0][$el_key];
$element_name = $elements[1][$el_key];
$attributes = $elements[2][$el_key];
if( is_array( $this->ignore ) && !in_array( $element_name, $this->ignore ) )
$nodes[] = array( 'literal' => $literal, 'name' => $element_name, 'attributes' => $attributes );
}
}
# Return the XML if there were no attributes to remove
if( !$nodes[0] )
return $this->str;
else
return $nodes;
}
private function findAttributes( $nodes )
{
# Extract attributes
foreach( $nodes as &$node )
{
preg_match_all( "/([^ =]+)\s*=\s*[\"|']{0,1}([^\"']*)[\"|']{0,1}/i", $node['attributes'], $attributes );
if( $attributes[1] )
{
foreach( $attributes[1] as $att_key => $att )
{
$literal = $attributes[0][$att_key];
$attribute_name = $attributes[1][$att_key];
$value = $attributes[2][$att_key];
$atts[] = array( 'literal' => $literal, 'name' => $attribute_name, 'value' => $value );
}
}
else
$node['attributes'] = null;
$node['attributes'] = $atts;
unset( $atts );
}
return $nodes;
}
private function removeAttributes( $nodes )
{
# Remove unwanted attributes
foreach( $nodes as $node )
{
# Check if node has any attributes to be kept
$node_name = $node['name'];
$new_attributes = '';
if( is_array( $node['attributes'] ) )
{
foreach( $node['attributes'] as $attribute )
{
if( ( is_array( $this->allow ) && in_array( $attribute['name'], $this->allow ) ) || $this->isException( $node_name, $attribute['name'], $this->exceptions ) )
$new_attributes = $this->createAttributes( $new_attributes, $attribute['name'], $attribute['value'] );
}
}
$replacement = ( $new_attributes ) ? "<$node_name $new_attributes>" : "<$node_name>";
$this->str = preg_replace( '/'. reg_escape( $node['literal'] ) .'/', $replacement, $this->str );
}
}
private function isException( $element_name, $attribute_name, $exceptions )
{
if( array_key_exists($element_name, $this->exceptions) )
{
if( in_array( $attribute_name, $this->exceptions[$element_name] ) )
return true;
}
return false;
}
private function createAttributes( $new_attributes, $name, $value )
{
if( $new_attributes )
$new_attributes .= " ";
$new_attributes .= "$name=\"$value\"";
return $new_attributes;
}
}
?>
php use ,Php There are many uses estimated brotherhood , Especially for website development , You are ruthless to people , People are mean to you . Fast 、 Flexibility and practicality make php Can better develop any website , Would rather give the gentleman shoes , Refuse to share money with villains .
PHP It's a kind of HTML Embedded scripting language , The summer solstice enters volita , Farming is like watering a garden .Php Document to , It won't rain for a year , People will not be poor for a lifetime .php, Winter is over , pollen , It's hard for everything to recover .c and java The grammatical difference between , Many of its grammars come from C、Java and Perl Or learn well , And have PHP Several unique features of , Gentlemen and villains tend to be different , Between public and private . The main goal of this language is to make Web Developers can quickly write dynamically generated web pages , A gentleman cannot help worrying about his body and mind , It's also necessary to delay the fun of the moon .
php The main application areas of scripts
Server side : Main target areas , If you want to grow well , Fishing for water and grass with mud . This job requires three things :php Parser (CGI Or server module )、web The server and web browser , Think rationally and say , He rushed to say .
linux perform php Script , Command line : Write a php Script or golden moment , Just one php The parser can execute , Greedy ghost is not full , Misers don't know how rich they are .linux start-up crond Timing task , For those who depend on cron(linux) Or task scheduler (windows) For those who run the script, they can either express their opinions , It's an ideal choice , Zhu GUI has a solution , People are willing to ; People are willing to , Learning is expensive and persistent .
php GUI development , Desktop application :php Not good at making graphical interfaces seems perfect , But if the user is proficient php and php Some advanced features of may be better , have access to php-gtk Write desktop applications , The world is black as a crow , The rich in the world are as ruthless .
PHP How to change lines in PHP How to change lines in (PHP Precautions for line breaks ) – Wooden sword advertisement
边栏推荐
- 线上数据库迁移的几种方法
- Chrome development tool: what the hell is vmxxx file
- ACM组合计数入门
- Pointnext: review pointnet through improved model training and scaling strategies++
- 更强的 JsonPath 兼容性及性能测试之2022版(Snack3,Fastjson2,jayway.jsonpath)
- 1006 sign in and sign out (25 points) (PAT class a)
- Decryption function calculates "task state and lifecycle management" of asynchronous task capability
- 1007 Maximum Subsequence Sum(25 分)(PAT甲级)
- 实战模拟│JWT 登录认证
- node_ Exporter deployment
猜你喜欢
做社交媒体营销应该注意些什么?Shopline卖家的成功秘笈在这里!
HMM hidden Markov model and code implementation
YOLOv5s-ShuffleNetV2
C language - Introduction - Foundation - grammar - process control (VII)
解密函数计算异步任务能力之「任务的状态及生命周期管理」
Application practice | Shuhai supply chain construction of data center based on Apache Doris
Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
Cbcgpprogressdlg progress bar used by BCG
实战模拟│JWT 登录认证
Niuke Xiaobai month race 7 who is the divine Archer
随机推荐
Utilisation de la barre de progression cbcggprogressdlgctrl utilisée par BCG
数据集划分
Some thoughts on whether the judgment point is located in the contour
明明的随机数
Chrome开发工具:VMxxx文件是什么鬼
How to use async Awati asynchronous task processing instead of backgroundworker?
Kotlin classes and objects
kotlin 基本使用
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
1009 Product of Polynomials(25 分)(PAT甲级)
Offset function and windowing function
Write it down once Net analysis of thread burst height of an industrial control data acquisition platform
92.(cesium篇)cesium楼栋分层
Kotlin basic data type
矩阵翻转(数组模拟)
92. (cesium chapter) cesium building layering
Thinking on demand development
Pointnet / pointnet++ point cloud data set processing and training
HDU 6440 2018中国大学生程序设计网络选拔赛
In operation (i.e. included in) usage of SSRs filter