Home  >  Article  >  Backend Development  >  Analyze how PHP implements "automatic question brushing" (with ideas)

Analyze how PHP implements "automatic question brushing" (with ideas)

藏色散人
藏色散人forward
2021-12-20 10:42:025576browse

Use php to realize automatic question answering in the class workshop

Open source address

https://github.com/WOSHIZHAZHA120/ kgc_cheater

General idea

  • Get all the questions at the front desk and mark them
  • Record answers in the background
  • Get them from the background The answer is automatically filled in

Implementation principle

Analyze how PHP implements automatic question brushing (with ideas)
First of all, you can find that all the questions are pictures, but the URLs have one thing in common, That is imageType=2
Then go directly to the code [Recommended learning: "PHP Video Tutorial"]

Analyze how PHP implements automatic question brushing (with ideas)

##Get All image addresses are sent to the backend, and the backend will receive the url addresses of all images

Analyze how PHP implements automatic question brushing (with ideas)

This is part of the source code, about this

getQuestionIdFromImageUrlI’ll talk about it laterThen create a new database. I have created a database named
kgc_cheater and the table
question_answersThe following is the table structure

Analyze how PHP implements automatic question brushing (with ideas)

And use the Medoo/Medoo library as a database link

Then write a logic to get the answer from the database

Analyze how PHP implements automatic question brushing (with ideas)

Analyze how PHP implements automatic question brushing (with ideas)

You may be curious about what

maps is, because the operation of the front-end image address is different from that of the back-end Let me show you
getQuestionIdFromImageUrlYou may be able to Understand

Analyze how PHP implements automatic question brushing (with ideas)

Because it is found that the image address of each user is different, even if the title is the same, the image address of each account will not change, so explain the image address The calculation is regular. After researching for a long time, I found that it is actually dividing the

relativePath parameter with / and then subtracting the specified offset value from the second part. I will explain how to obtain it laterWe directly request answers from the background and return the maps and answers parameters

Analyze how PHP implements automatic question brushing (with ideas)

##The definition of maps

is actually $url => $question_id The definition of answers
is['question_id' => $question_id, 'answer' => $answer]

Analyze how PHP implements automatic question brushing (with ideas)As shown in the figure, use 3 parents and then enter ul.sec2 to get the answer list, then find the element containing the answer and simulate clicking on it

This completes an automatic answer


Back Above, regarding obtaining the offset value, when you log in, look at your url

Analyze how PHP implements automatic question brushing (with ideas)##559634

, which is your offset value, and enter the answer Page

This is the source address of the imagehttps://tiku.kgc.cn/testing/cdn/getImage?relativePath=0069000/1543312740097/e19f21615ab8e9866619bf47c3b5b59c.jpg&imageType=2
Get The original image ID is 0069000/1543312740097

Use the offset value to subtract the second parameter to get 1543312180463
Finally get the question ID: 0069000/ 1543312180463

Other accounts can also get the same ID after experiments, and then this is the actual ID saved in the databaseWhen entering the main page, I have a script to record this
Use cookies Save

Attach code

Analyze how PHP implements automatic question brushing (with ideas)

There are correct answers in the parsing interface

Analyze how PHP implements automatic question brushing (with ideas)

Wrap each part with .sec.post
and then go down to get .sec2, then get img and get the url
to get the image id, also take relativePath but there is no need to apply bias The value has been moved, and it can be directly stored in the database.
Similarly, the answer is in.sec3, go down.pad10, and then go downem:eq(0)
Get it directly like this

Analyze how PHP implements automatic question brushing (with ideas)

Then send it to the backend and throw it into the database for recording
And send the recorded message to the frontend

Analyze how PHP implements automatic question brushing (with ideas)

Back-end recording code

Analyze how PHP implements automatic question brushing (with ideas)

Then the front-end and back-end cooperation, automatic recording of questions, automatic answering
Finally, automatic answering
After entering a test paper, a code for automatically updating the test paper is added after automatic filling, as shown in the figure

Analyze how PHP implements automatic question brushing (with ideas)

##About the string of numbers after

fuxiAutoMaybe we are all different, attach the subject ID to get the tutorial

First enter

Analyze how PHP implements automatic question brushing (with ideas)

Use the developer tools to find the start test button

Analyze how PHP implements automatic question brushing (with ideas)

javascript:unitExam(

1098001001)This
1098001001 is the subject idThe last digit here is 1 to 7 So I wrote an automatic random number to randomly generate integers from 1 to 7

It’s also very simple to modify

Analyze how PHP implements automatic question brushing (with ideas)

Change the 1 and 7 in the picture to yours The minimum and maximum values ​​are sufficient.

The above is the detailed content of Analyze how PHP implements "automatic question brushing" (with ideas). For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete