亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Inhaltsverzeichnis
1. Kommunikationsmechanismus
2. Nachrichtentypen
1. Nachrichtentypen akzeptieren
2.1 Textnachricht
Heim WeChat-Applet WeChat-Entwicklung Entwicklungsreihe für die ?ffentliche WeChat-Plattform

Entwicklungsreihe für die ?ffentliche WeChat-Plattform

May 14, 2018 pm 03:28 PM
Wechat ?ffentliche Plattform

Um mit der Entwicklung der ?ffentlichen WeChat-Plattform zu beginnen, müssen wir zun?chst verstehen, wozu die WeChat-Plattform uns beitragen kann.

Verwenden Sie Ihr ?ffentliches Konto, um sich bei http://mp.weixin.qq.com/ anzumelden, w?hlen Sie das Menü – Erweiterte Funktionen – Entwicklungsmodus – Dokumente anzeigen, und Sie werden das sehen aktueller Stand der entwicklungsf?higen Funktionen der ?ffentlichen WeChat-Plattform.

1. Kommunikationsmechanismus

微信公眾平臺(tái)開(kāi)發(fā)系列

Der Hauptinhalt der ?ffentlichen Plattform ist

  • Akzeptieren Sie das gesendete ?ffentliche Konto von Benutzern an Sie Nachricht

  • Antworten Sie Ihrem Benutzer eine Nachricht

Es ist zu beachten, dass das Senden einer Nachricht und das Verschwinden der Antwort fortlaufend sind Prozess, nur Kann in einem Gespr?ch durchgeführt werden. Mit anderen Worten: Wenn Ihre Benutzer nicht mit Ihnen sprechen, k?nnen Sie Ihren Kunden keine aktiven Nachrichten senden (Massennachrichten sind eine andere Situation, bei der die H?ufigkeit begrenzt ist). Sie k?nnen auch eine kostenpflichtige Nutzung von WeChat beantragen CRM-Plattform). Alle gesendeten und empfangenen Nachrichten erfordern zur übertragung die WeChat-Plattform.

2. Nachrichtentypen

Im Folgenden werden die Nachrichtentypen vorgestellt, die Benutzer Ihnen senden k?nnen. Dies sind die Nachrichtentypen, die derzeit empfangen werden.

1. Nachrichtentypen akzeptieren

Dies ist das, was uns normalerweise am h?ufigsten begegnet. Dies l?sst sich anhand einiger im Text erw?hnter Schlüsselw?rter beurteilen Die Bedeutung des Benutzers erkennen und darauf reagieren.

1.2 Bildnachrichten:

Derzeit ist es immer noch schwierig zu verstehen, was Benutzer durch Bilder ausdrücken m?chten. Daher entscheiden sich die meisten ?ffentlichen Konten dafür, Bildinformationen zu ignorieren oder sie manuell zu verarbeiten. Ich kann nur sagen: Die Bilder sind wundersch?n, aber ich kann sie nicht verstehen.

1.3 Geolocation-Nachricht:

Der Benutzer sendet Ihnen seinen Standort, was für die meisten ?ffentlichen Konten eine wichtige Information ist. Es kann einige Dienste basierend auf Standortinformationen bereitstellen, z. B. ein ?ffentliches Hotelreservierungskonto, das Hotels in Ihrer N?he empfehlen kann. Eine weitere Erg?nzung besteht darin, dass Standortinformationen analysiert und in Textnachrichten verwendet werden k?nnen. Wenn der Benutzer beispielsweise ?Fu?g?ngerzone Nanjing Road“ eingibt, k?nnen dem Benutzer die relevanten H?ndler der Fu?g?ngerzone Nanjing Road angezeigt werden.

1.4 Linknachricht:

Es gibt noch keine besonders effektive Verwendungsmethode im Entwicklungsmodus. Es kann h?ufiger beim Einkaufen oder bei einer Beratung verwendet werden, um die Person zu verdeutlichen, über die Sie sprechen.

1.5 Ereignis-Push-Nachricht:

Wenn der Benutzer an der Konversation mit Ihnen teilnimmt, k?nnen Sie den Benutzer zuerst begrü?en usw. Diese Nachricht unterstützt derzeit nur Version 4.5 und wurde noch nicht entwickelt. Es gibt viel Raum zum Nachdenken über die Zukunft. Was passiert beispielsweise, wenn der Benutzer die Sitzung betritt?

2. Antwortnachrichtentypen

2.1 Textnachricht

Dies ist die Art von Nachricht, die wir normalerweise am h?ufigsten senden. Wenn zur Beantwortung der Nachricht des Benutzers nur einfacher Text erforderlich ist, kann dies der Fall sein verwendete Informationen. Textnachrichten k?nnen Linkadressen enthalten.


微信公眾平臺(tái)開(kāi)發(fā)系列 2.2 Grafische Nachricht

Grafische Nachricht, das ist das Nachrichtenformat, das wir oft in Push-Nachrichten sehen. Jeder Inhalt kann angeklickt werden, um detailliertere Informationen anzuzeigen (natürlich k?nnen Sie den Link auch auf leer setzen, damit er nicht springen kann)


微信公眾平臺(tái)開(kāi)發(fā)系列 2.3 Musiknachrichten

Viele Nutzer bevorzugen es, dem Nutzer als Antwort eine Sprachnachricht oder Musik zu geben.

Nachdem wir den Kommunikationsmechanismus und die Nachrichtentypen der ?ffentlichen Plattform verstanden haben, beginnen wir mit der Vorbereitung der Entwicklungsumgebung

1 Stellen Sie den Entwicklermodus ein

Melden Sie sich an WeChat Work-Plattform, w?hlen Sie erweiterte Funktionen aus, wechseln Sie in den Entwicklungsmodus und werden Sie Entwickler. Sie müssen es wie unten gezeigt konfigurieren. Die URL-Konfigurationsinformationen bedeuten, dass der Backend-Server von WeChat Ihre Benutzernachrichten zur Verarbeitung an die URL sendet. Token ist ein Passwort zwischen Ihnen und WeChat. Es wird verwendet, um zu überprüfen, ob die Nachricht vom WeChat-Dienst gesendet wird und nicht von anderen, die Ihr System angreifen.

Sie k?nnen es noch nicht einrichten. W?hrend der Einrichtung stellt WeChat eine GET-Anfrage für die von Ihnen festgelegte URL und prüft, ob die Schnittstelle verwendet werden kann. Sie k?nnen dies erst einrichten, nachdem Sie die GET-Methode bereit haben.

微信公眾平臺(tái)開(kāi)發(fā)系列

2. Implementieren Sie die GET-Methode

Wie wir aus der Dokumentation wissen, müssen wir die POST- und GET-Methoden implementieren, und die GET-Methode wird zur Verifizierung von WeChat und Ihrer Kommunikationsverifizierung verwendet, POST wird zur Nachrichtenverarbeitung verwendet.

Erstellen Sie ein neues Servlet HelloWeChat und implementieren Sie zun?chst die GET-Methode

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        // TODO 為了簡(jiǎn)單起見(jiàn),先不對(duì)消息來(lái)源進(jìn)行校驗(yàn)
        response.setContentType("text/html;charset=UTF-8"); 
        PrintWriter pw = response.getWriter(); 
        String echo = request.getParameter("echostr"); 
        echo = new String(echo.getBytes("ISO-8859-1"),"UTF-8"); 
        pw.println(echo); 
    }

Sie k?nnen http://localhost:8080/QiyadengWeb/HelloWeChat?echostr=hello Chinese verwenden. Wenn es keine Probleme gibt, k?nnen Sie es auf dem Server bereitstellen und dann einrichten die ?ffentliche Plattform WeChat.

3. Implementieren Sie die POST-Methode

Die POST-Methode empf?ngt zun?chst das von der ?ffentlichen WeChat-Plattform gesendete XML und extrahiert den Nachrichtenabsender und den Nachrichteninhalt. Für weitere Inhalte zum Senden von Nachrichten k?nnen Sie Ihre eigene Verarbeitungslogik hinzufügen und diese schlie?lich zu einer XML-Antwortnachricht zusammenfügen und an die ?ffentliche WeChat-Plattform zurücksenden.

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        response.setContentType("text/html;charset=UTF-8"); 
        PrintWriter pw = response.getWriter(); 
        String wxMsgXml = IOUtils.toString(request.getInputStream(),"utf-8"); 
        WeChatTextMessage textMsg = null; 
        try { 
            textMsg = getWeChatTextMessage(wxMsgXml); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        StringBuffer replyMsg = new StringBuffer(); 
        if(textMsg != null){ 
            //增加你所需要的處理邏輯,這里只是簡(jiǎn)單重復(fù)消息
            replyMsg.append("您給我的消息是:"); 
            replyMsg.append(textMsg.getContent()); 
        } 
        else{ 
            replyMsg.append(":)不是文本的消息,我暫時(shí)看不懂"); 
        } 
        String returnXml = getReplyTextMessage(replyMsg.toString(), textMsg.getFromUserName()); 
        pw.println(returnXml); 
    }

Zum Debuggen empfiehlt Fiddler hier ein Tool. Sie k?nnen WeChat-POST-Nachrichten auf Ihrem lokalen Server simulieren, ohne sie jedes Mal zum Debuggen auf dem Server bereitstellen zu müssen. Informationen zur Verwendung der POST-Daten von Fiddler finden Sie in den in der folgenden Abbildung markierten Inhalten.

微信公眾平臺(tái)開(kāi)發(fā)系列

4. Bereitstellen und testen

Schlie?en Sie den ersten Schritt ab und führen Sie ein Gespr?ch mit Ihrem ?ffentlichen Konto. Es erfolgt keine Antwort die Nachricht. Wenn Sie Fragen haben, herzlichen Glückwunsch .

微信公眾平臺(tái)開(kāi)發(fā)系列

5. Abh?ngigkeitsbibliothek

Für Schüler, die Maven verwenden, fügen Sie einfach die folgenden Abh?ngigkeiten hinzu. Für Nicht-Maven-Benutzer suchen Sie einfach diese Bibliotheken und fügen Sie sie dem Builder-Pfad hinzu.

<dependency> 
    <groupId>joda-time</groupId> 
    <artifactId>joda-time</artifactId> 
    <version>2.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>1.3.2</version> 
</dependency> 
<dependency> 
    <groupId>com.thoughtworks.xstream</groupId> 
    <artifactId>xstream</artifactId> 
    <version>1.4.3</version> 
</dependency>

6. Vollst?ndiger Code

package com.qiyadeng.wechat; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.Date; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.commons.io.IOUtils; 
import com.thoughtworks.xstream.XStream; 
import com.thoughtworks.xstream.io.xml.DomDriver; 
/**
 * Servlet implementation class HelloWeChat
 */
public class HelloWeChat extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWeChat() { 
        super(); 
    } 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        // TODO 為了簡(jiǎn)單起見(jiàn),先不對(duì)消息來(lái)源進(jìn)行校驗(yàn)
        response.setContentType("text/html;charset=UTF-8"); 
        PrintWriter pw = response.getWriter(); 
        String echo = request.getParameter("echostr"); 
        echo = new String(echo.getBytes("ISO-8859-1"),"UTF-8"); 
        pw.println(echo); 
    } 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        response.setContentType("text/html;charset=UTF-8"); 
        PrintWriter pw = response.getWriter(); 
        String wxMsgXml = IOUtils.toString(request.getInputStream(),"utf-8"); 
        WeChatTextMessage textMsg = null; 
        try { 
            textMsg = getWeChatTextMessage(wxMsgXml); 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
        StringBuffer replyMsg = new StringBuffer(); 
        if(textMsg != null){ 
            //增加你所需要的處理邏輯,這里只是簡(jiǎn)單重復(fù)消息
            replyMsg.append("您給我的消息是:"); 
            replyMsg.append(textMsg.getContent()); 
        } 
        else{ 
            replyMsg.append(":)不是文本的消息,我暫時(shí)看不懂"); 
        } 
        String returnXml = getReplyTextMessage(replyMsg.toString(), textMsg.getFromUserName()); 
        pw.println(returnXml); 
    } 
    private WeChatTextMessage getWeChatTextMessage(String xml){ 
        XStream xstream = new XStream(new DomDriver()); 
        xstream.alias("xml", WeChatTextMessage.class); 
        xstream.aliasField("ToUserName", WeChatTextMessage.class, "toUserName"); 
        xstream.aliasField("FromUserName", WeChatTextMessage.class, "fromUserName"); 
        xstream.aliasField("CreateTime", WeChatTextMessage.class, "createTime"); 
        xstream.aliasField("MsgType", WeChatTextMessage.class, "messageType"); 
        xstream.aliasField("Content", WeChatTextMessage.class, "content"); 
        xstream.aliasField("MsgId", WeChatTextMessage.class, "msgId"); 
        WeChatTextMessage wechatTextMessage = (WeChatTextMessage)xstream.fromXML(xml);  
        return wechatTextMessage; 
    } 
    private String getReplyTextMessage(String content, String weChatUser){ 
        WeChatReplyTextMessage we = new WeChatReplyTextMessage(); 
        we.setMessageType("text"); 
        we.setFuncFlag("0"); 
        we.setCreateTime(new Long(new Date().getTime()).toString()); 
        we.setContent(content); 
        we.setToUserName(weChatUser); 
        we.setFromUserName("shanghaiweather");//TODO 你的公眾帳號(hào)微信號(hào)
        XStream xstream = new XStream(new DomDriver());  
        xstream.alias("xml", WeChatReplyTextMessage.class); 
        xstream.aliasField("ToUserName", WeChatReplyTextMessage.class, "toUserName"); 
        xstream.aliasField("FromUserName", WeChatReplyTextMessage.class, "fromUserName"); 
        xstream.aliasField("CreateTime", WeChatReplyTextMessage.class, "createTime"); 
        xstream.aliasField("MsgType", WeChatReplyTextMessage.class, "messageType"); 
        xstream.aliasField("Content", WeChatReplyTextMessage.class, "content"); 
        xstream.aliasField("FuncFlag", WeChatReplyTextMessage.class, "funcFlag"); 
        String xml =xstream.toXML(we); 
        return xml; 
    } 
}

Standortidentifizierung Dies ist eine Nachricht, die h?ufig in praktischen Anwendungen verwendet wird, insbesondere für viele H?ndler, durch das Verst?ndnis der Standort des Benutzers, Bereitstellung spezieller Produkte oder Empfehlungen für Einkaufszentren für Benutzer. Benutzer k?nnen zwei Arten von Nachrichten senden:

1. Geografische WeChat-Standortinformationen

2 ??>

Lassen Sie uns herausfinden, welche Informationen die WeChat-Standortnachricht enth?lt

Die wichtigsten enthaltenen Informationen sind L?ngengrad, Breitengrad und der Standort des Labels. Entsprechende Dienste k?nnen den Nutzern auf Basis der im Label beschriebenen Standortinformationen bereitgestellt werden. Sie k?nnen Ihre neuesten Produkte oder regionalen Produkte auch basierend auf den L?ngen- und Breitengradinformationen des Benutzers bereitstellen.

<xml> 
<ToUserName><![CDATA[toUser]]></ToUserName> 
<FromUserName><![CDATA[fromUser]]></FromUserName> 
<CreateTime>1351776360</CreateTime> 
<MsgType><![CDATA[location]]></MsgType> 
<Location_X>23.134521</Location_X> 
<Location_Y>113.358803</Location_Y> 
<Scale>20</Scale> 
<Label><![CDATA[位置信息]]></Label> 
<MsgId>1234567890123456</MsgId> 
</xml>

Definieren Sie zun?chst die WeChatLocationMessage-Klasse basierend auf den geografischen Standortinformationen von WeChat und konvertieren Sie XML in ein WeChatLocationMessage-Objekt 微信公眾平臺(tái)開(kāi)發(fā)系列

Dieser Artikel verwendet die Karten-API von Baidu , finden Sie als Beispiel die n?chstgelegene Bank.

public class WeChatLocationMessage { 
    private String toUserName; 
    private String fromUserName; 
    private String createTime; 
    private String msgType; 
    private String locationx; 
    private String localtiony; 
    private String scale; 
    private String label; 
    private String msgId; 
    public static WeChatLocationMessage getWeChatLocationMessage(String xml){ 
        XStream xstream = new XStream(new DomDriver()); 
        WeChatLocationMessage  message = null; 
        xstream.alias("xml", WeChatLocationMessage.class); 
        xstream.aliasField("ToUserName", WeChatLocationMessage.class, "toUserName"); 
        xstream.aliasField("FromUserName", WeChatLocationMessage.class, "fromUserName"); 
        xstream.aliasField("CreateTime", WeChatLocationMessage.class, "createTime"); 
        xstream.aliasField("MsgType", WeChatLocationMessage.class, "msgType"); 
        xstream.aliasField("Location_X", WeChatLocationMessage.class, "locationx"); 
        xstream.aliasField("Location_Y", WeChatLocationMessage.class, "localtiony"); 
        xstream.aliasField("Scale", WeChatLocationMessage.class, "scale"); 
        xstream.aliasField("Label", WeChatLocationMessage.class, "label"); 
        xstream.aliasField("MsgId", WeChatLocationMessage.class, "msgId"); 
        message = (WeChatLocationMessage)xstream.fromXML(xml); 
        return message; 
    } 
//getter and setter
}

Ergebnisse ausgeben

public String getPalace(String query,String lat,String lng) throws ClientProtocolException, IOException{ 
    HttpClient httpClient = new DefaultHttpClient(); 
    String url = palceRequestUrl(query,lat,lng); 
    logger.log(Level.INFO, url); 
    HttpGet httpget = new HttpGet(url); 
    ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
    String responseBody = httpClient.execute(httpget, responseHandler); 
    logger.log(Level.INFO,"baidu response:"+responseBody); 
    return responseBody; 
} 

public String palceRequestUrl(String query,String lat,String lng) throws UnsupportedEncodingException { 
    String url = WeChatConstant.BASEURL + "place/search?query=" + URLEncoder.encode(query,"UTF-8") + "&key="
            + WeChatConstant.MAPKEY +"&location="+lat+","+lng +"&radius=2000"+"&output=" + WeChatConstant.OUTPUTFORMAT; 
    return url; 
}

Als N?chstes werden WeChat-Benutzern die aktuellen Standortinformationen der Baidu-Karte im Format grafischer Nachrichten angezeigt

<PlaceSearchResponse> 
    <status>OK</status> 
    <results> 
        <result> 
            <name>中國(guó)工商銀行東長(zhǎng)安街支行</name> 
            <location> 
                <lat>39.915891</lat> 
                <lng>116.41867</lng> 
            </location> 
            <address>東城區(qū)東長(zhǎng)安街1號(hào)東方廣場(chǎng)西三辦公樓1樓</address> 
            <uid>a025683c73033c35a21de987</uid> 
            <detail_url>http://api.map.baidu.com/place/detail?uid=a025683c73033c35a21de987&amp;amp;output=html&amp;amp;source=placeapi
            </detail_url> 
            <tag>銀行,王府井/東單</tag> 
        </result> 
      </results> 
</PlaceSearchResponse>

2. Stra?ennamen, Wahrzeichen von Geb?uden oder Namen von Einkaufszentren

    public static String getWeChatReplyNewsMessageByBaiduPlace(List<BaiduPlaceResponse> placeList, double lat, double lng,String userName, int size){ 
        WeChatReplyNewsMessage newsMessage = new WeChatReplyNewsMessage(); 
        List<Item> items = new ArrayList<Item>(); 
        StringBuffer strBuf = new StringBuffer(); 
        logger.log(Level.INFO,"placeList count="+placeList.size()); 
        newsMessage.setItems(items); 
        if(placeList.size()>size){ 
            newsMessage.setArticleCount(size); 
        } 
        else{ 
            newsMessage.setArticleCount(placeList.size()); 
        } 
        logger.log(Level.INFO,"article count="+newsMessage.getArticleCount()); 
        newsMessage.setCreateTime(new Date().getTime()+""); 
        newsMessage.setMsgType("news"); 
        newsMessage.setFuncFlag("0"); 
        newsMessage.setToUserName(userName); 
        newsMessage.setFromUserName(WeChatConstant.FROMUSERNAME); 
        for(int i = 0;i <newsMessage.getArticleCount();i++){ 
            BaiduPlaceResponse place = placeList.get(i); 
            Double distance = GeoUtil.DistanceOfTwoPoints(Double.valueOf(place.getLng()), Double.valueOf(place.getLat()), lng, lat, GaussSphere.Beijing54); 
            Item item = new Item(); 
            item.setTitle(place.getName()+"["+distance+"米]"+"\n"+place.getAddress()+"\n"+place.getTelephone()); 
            item.setPicUrl(""); 
            item.setUrl(place.getDetailUrl()); 
            item.setDescription(""); 
            items.add(item); 
        } 
logger.log(Level.INFO,"newMessage="+newsMessage.toString()); 
        strBuf = strBuf.append(getWeChatNewsMessage(newsMessage)); 
        return strBuf.toString(); 
    } 
    public static String getWeChatNewsMessage(WeChatReplyNewsMessage newsMessage){ 
        XStream xstream = new XStream(new DomDriver()); 
        xstream.alias("xml", WeChatReplyNewsMessage.class); 
        xstream.aliasField("ToUserName", WeChatReplyNewsMessage.class, "toUserName"); 
        xstream.aliasField("FromUserName", WeChatReplyNewsMessage.class, "fromUserName"); 
        xstream.aliasField("CreateTime", WeChatReplyNewsMessage.class, "createTime"); 
        xstream.aliasField("MsgType", WeChatReplyNewsMessage.class, "msgType"); 
        xstream.aliasField("ArticleCount", WeChatReplyNewsMessage.class, "articleCount"); 
        xstream.aliasField("Content", WeChatReplyNewsMessage.class, "content"); 
        xstream.aliasField("FuncFlag", WeChatReplyNewsMessage.class, "funcFlag"); 
        xstream.aliasField("Articles", WeChatReplyNewsMessage.class, "items"); 
        xstream.alias("item", Item.class); 
        xstream.aliasField("Title", Item.class, "title"); 
        xstream.aliasField("Description", Item.class, "description"); 
        xstream.aliasField("PicUrl", Item.class, "picUrl"); 
        xstream.aliasField("Url", Item.class, "url"); 
        return xstream.toXML(newsMessage); 
    }
Für Stra?ennamen, Wahrzeichen von Geb?uden und andere Informationen besteht die Methode darin, den L?ngen- und Breitengrad der eingegebenen Standortinformationen anhand von Karteninformationen Dritter zu bestimmen.

Dieser Artikel verwendet die Baidu Map API, um den L?ngen- und Breitengrad des gesuchten Standorts zu bestimmen.

Nach der Bestimmung des L?ngen- und Breitengrads ist das Problem dasselbe wie beim ersten Nachrichtentyp, und die entsprechende Verarbeitung erfolgt entsprechend dem L?ngen- und Breitengrad.

微信公眾平臺(tái)開(kāi)發(fā)系列 Weitere verwandte Artikel in der WeChat-Reihe zur Entwicklung ?ffentlicher Plattformen finden Sie auf der chinesischen PHP-Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72