java?? ???? ???? ??? ?? ??? ? ?????? ?? ???? ?? ???? ??? ??????. ??? ?? ???? ?? (?? ??) ?? ???? ?? (?? ??) ????? ??? ????.
.
Dijkstra? ????? ???? ? ?? ???? ?? ??? ?? ??? ??? ?? ? ?? ?????. ???? ?? ???? ???? ??? ?? ?? ? ??? ? ???? ???? ?? ??? ?? ? ??? ? ??? ?? ?? ???? ? ?? ??? ???? ?? ?????.
?? ?? ? ???? ?? ??? ??? ??????. ?? ?? ?? ? ???? ???? ????. ????? ???? ???, ??? ??? ? ?? ???? ??? ?? ?? ?? ?? ????? ????. Google? PageRank, Facebook? ??? ?? ? Amazon ? Netflix? ?? ??? ??? ?? ?? ????? ????.
? ????? ???? ???? ? ?? ???? ??, ? ? ?? ?? ?? ?? ??? ?? ?????.
???? ?/? ? ?? ??? ????? ? ???? ??? ?????. ???? (??) ??? ???? ???? (??) ??? ?????. ? ????? ????? ???? ?? ? ????. ?? ????? ??? ? ?? ??? ?????? ???? A → B? B → A? ???? ????. ????? ?????? ???? ??? ????. ?? A-B? B-A? ????. ??? ???? ?? ?? ?? ??? ? ??? ??? ??? ?? ??? ??? ?? ??? ??? ??? ???? ?? ???? ?? ? ? ????.
???? ???? ??? ?? ?? ? ?? ????. ?? ??? ?? ????? ??? ?? ?? ?? ? ???? ???? ????. ?? ???? ????? ?? ??? ??, ?? ??? ?? ?? ?? "??"??? ???? ? ????? ?????. Googlemap? ?? ??? ?? ???? ???? ????.
?? ?? ? ???. ?, ?? ??? ????? ?????. ??? ??? ? ?? ???? ?? ?? ?? ?? ?? ????.
?? ?? ????, ??? ?? ?? (?? ??? ??? ??)?? ???? ??? ??? ?? ??? ?????. ?? ???? ???? ?? ?? ??? ????? ? ?? ?? ? ???? ?? ? ? ????? ???? ?????.
?? ????? ??? ????.
??? ?? ???? ??? ?? ???? ?? ?? ??? ?? ? ??? ??? ? ? ????? ?? ?? ??? ??? ??? ??? ? ??? ??? ?????.
????? ???? ???? ??? ????. ??? 1? 2 ?? ?? ??? ???? "??"? ?????.
??? ??? ?? ???? ?? ?? ???? ?? ?? ???? ?? ?? ????? ??? ??? ? ?? ??? ???????. ????? ?? ??? ?? ??? ??? ??? ????? ?? ????.
??? ??? ???? ???? ?????.
1. Create a queue
2. Enqueue the root node and mark it as visited
3. While the queue is not empty do:
3a. dequeue the current node
3b. if the current node is the one we're looking for then stop
3c. else enqueue each unvisited adjacent node and mark as visited
?? ??? ???? ??? ????.
<span><span><?php
</span></span><span><span>$graph = array(
</span></span><span> <span>'A' => array('B', 'F'),
</span></span><span> <span>'B' => array('A', 'D', 'E'),
</span></span><span> <span>'C' => array('F'),
</span></span><span> <span>'D' => array('B', 'E'),
</span></span><span> <span>'E' => array('B', 'D', 'F'),
</span></span><span> <span>'F' => array('A', 'E', 'C'),
</span></span><span><span>);</span></span>
??? ? ?? ??? ?????, ????? ?? ?? ??????.
<span><span><?php
</span></span><span><span>class Graph
</span></span><span><span>{
</span></span><span> <span>protected $graph;
</span></span><span> <span>protected $visited = array();
</span></span><span>
</span><span> <span>public function __construct($graph) {
</span></span><span> <span>$this->graph = $graph;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>// find least number of hops (edges) between 2 nodes
</span></span><span> <span>// (vertices)
</span></span><span> <span>public function breadthFirstSearch($origin, $destination) {
</span></span><span> <span>// mark all nodes as unvisited
</span></span><span> <span>foreach ($this->graph as $vertex => $adj) {
</span></span><span> <span>$this->visited[$vertex] = false;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>// create an empty queue
</span></span><span> <span>$q = new SplQueue();
</span></span><span>
</span><span> <span>// enqueue the origin vertex and mark as visited
</span></span><span> <span>$q->enqueue($origin);
</span></span><span> <span>$this->visited[$origin] = true;
</span></span><span>
</span><span> <span>// this is used to track the path back from each node
</span></span><span> <span>$path = array();
</span></span><span> <span>$path[$origin] = new SplDoublyLinkedList();
</span></span><span> <span>$path[$origin]->setIteratorMode(
</span></span><span> <span>SplDoublyLinkedList<span>::</span>IT_MODE_FIFO|SplDoublyLinkedList<span>::</span>IT_MODE_KEEP
</span></span><span> <span>);
</span></span><span>
</span><span> <span>$path[$origin]->push($origin);
</span></span><span>
</span><span> <span>$found = false;
</span></span><span> <span>// while queue is not empty and destination not found
</span></span><span> <span>while (!$q->isEmpty() && $q->bottom() != $destination) {
</span></span><span> <span>$t = $q->dequeue();
</span></span><span>
</span><span> <span>if (!empty($this->graph[$t])) {
</span></span><span> <span>// for each adjacent neighbor
</span></span><span> <span>foreach ($this->graph[$t] as $vertex) {
</span></span><span> <span>if (!$this->visited[$vertex]) {
</span></span><span> <span>// if not yet visited, enqueue vertex and mark
</span></span><span> <span>// as visited
</span></span><span> <span>$q->enqueue($vertex);
</span></span><span> <span>$this->visited[$vertex] = true;
</span></span><span> <span>// add vertex to current path
</span></span><span> <span>$path[$vertex] = clone $path[$t];
</span></span><span> <span>$path[$vertex]->push($vertex);
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span>
</span><span> <span>if (isset($path[$destination])) {
</span></span><span> <span>echo "<span><span>$origin</span> to <span>$destination</span> in "</span>,
</span></span><span> <span>count($path[$destination]) - 1,
</span></span><span> <span>" hopsn";
</span></span><span> <span>$sep = '';
</span></span><span> <span>foreach ($path[$destination] as $vertex) {
</span></span><span> <span>echo $sep, $vertex;
</span></span><span> <span>$sep = '->';
</span></span><span> <span>}
</span></span><span> <span>echo "n";
</span></span><span> <span>}
</span></span><span> <span>else {
</span></span><span> <span>echo "No route from <span><span>$origin</span> to <span>$destinationn</span>"</span>;
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>
? ?? ???? ??? ? ?? ???? ?? ??? ??? ?? ????. ?? ?? Googlemap? ?? ??? ??? ?? ????. ?? ?? ?????? ?? ?? ??, ?? ?? ?? ? ??/?? ??? ?????.
? ??? ?????? ?? ??? ???? ? ??? 1959 ?? Edsger W. Dijkstra?? ???? 29 ?? ??? ???? ??????. ????? Dijkstra? ???? ?? ???? ???? ??? ?? ?? ? ??? ? ???? ???? ?? ??? ????? ?? ? ??? ? ??? ?? ?? ???? ? ?? ??? ???? ?? ?????.
???? ???? ???? ?? ??? ??? ??? 1959 ? ?? ??? ?? Minheaps, Priorityqueues ? Fibonacci ?? ???? ?? ?? ??? Dijkstra? ?? ?????? ???????. ?? ??? ?? ? ??, ?? ??? Dijkstra? ???? ??? ????? ???????. ???? ?? ??? ? ???? ????? (???? ?? ? ? ??).
??? (??? ?) ??? ???? ????.
??? ??? ???? ??? ???? ?? ? ? ????.
1. Create a queue
2. Enqueue the root node and mark it as visited
3. While the queue is not empty do:
3a. dequeue the current node
3b. if the current node is the one we're looking for then stop
3c. else enqueue each unvisited adjacent node and mark as visited
??? PriorityQueue? ???? ?? "????? ??"??? ??? ???? ?????.
<span><span><?php
</span></span><span><span>$graph = array(
</span></span><span> <span>'A' => array('B', 'F'),
</span></span><span> <span>'B' => array('A', 'D', 'E'),
</span></span><span> <span>'C' => array('F'),
</span></span><span> <span>'D' => array('B', 'E'),
</span></span><span> <span>'E' => array('B', 'D', 'F'),
</span></span><span> <span>'F' => array('A', 'E', 'C'),
</span></span><span><span>);</span></span>
?????, Dijkstra? ???? ??? ?? ? ??? ?????!
?? ??? ???? ?? ??? ????.
<span><span><?php
</span></span><span><span>class Graph
</span></span><span><span>{
</span></span><span> <span>protected $graph;
</span></span><span> <span>protected $visited = array();
</span></span><span>
</span><span> <span>public function __construct($graph) {
</span></span><span> <span>$this->graph = $graph;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>// find least number of hops (edges) between 2 nodes
</span></span><span> <span>// (vertices)
</span></span><span> <span>public function breadthFirstSearch($origin, $destination) {
</span></span><span> <span>// mark all nodes as unvisited
</span></span><span> <span>foreach ($this->graph as $vertex => $adj) {
</span></span><span> <span>$this->visited[$vertex] = false;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>// create an empty queue
</span></span><span> <span>$q = new SplQueue();
</span></span><span>
</span><span> <span>// enqueue the origin vertex and mark as visited
</span></span><span> <span>$q->enqueue($origin);
</span></span><span> <span>$this->visited[$origin] = true;
</span></span><span>
</span><span> <span>// this is used to track the path back from each node
</span></span><span> <span>$path = array();
</span></span><span> <span>$path[$origin] = new SplDoublyLinkedList();
</span></span><span> <span>$path[$origin]->setIteratorMode(
</span></span><span> <span>SplDoublyLinkedList<span>::</span>IT_MODE_FIFO|SplDoublyLinkedList<span>::</span>IT_MODE_KEEP
</span></span><span> <span>);
</span></span><span>
</span><span> <span>$path[$origin]->push($origin);
</span></span><span>
</span><span> <span>$found = false;
</span></span><span> <span>// while queue is not empty and destination not found
</span></span><span> <span>while (!$q->isEmpty() && $q->bottom() != $destination) {
</span></span><span> <span>$t = $q->dequeue();
</span></span><span>
</span><span> <span>if (!empty($this->graph[$t])) {
</span></span><span> <span>// for each adjacent neighbor
</span></span><span> <span>foreach ($this->graph[$t] as $vertex) {
</span></span><span> <span>if (!$this->visited[$vertex]) {
</span></span><span> <span>// if not yet visited, enqueue vertex and mark
</span></span><span> <span>// as visited
</span></span><span> <span>$q->enqueue($vertex);
</span></span><span> <span>$this->visited[$vertex] = true;
</span></span><span> <span>// add vertex to current path
</span></span><span> <span>$path[$vertex] = clone $path[$t];
</span></span><span> <span>$path[$vertex]->push($vertex);
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span>
</span><span> <span>if (isset($path[$destination])) {
</span></span><span> <span>echo "<span><span>$origin</span> to <span>$destination</span> in "</span>,
</span></span><span> <span>count($path[$destination]) - 1,
</span></span><span> <span>" hopsn";
</span></span><span> <span>$sep = '';
</span></span><span> <span>foreach ($path[$destination] as $vertex) {
</span></span><span> <span>echo $sep, $vertex;
</span></span><span> <span>$sep = '->';
</span></span><span> <span>}
</span></span><span> <span>echo "n";
</span></span><span> <span>}
</span></span><span> <span>else {
</span></span><span> <span>echo "No route from <span><span>$origin</span> to <span>$destinationn</span>"</span>;
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}</span></span>
??
? ???? ?? ??? ??? ??, ???? ???? ? ?? ?? ? ??? ??? ????? ? ?? ???? ??? ??????. ? ?? ???? ?? ?? ?? ?? ?? ? ??? ??? ??? ???? ??? Dijkstra? ???? ? ?? ???? ?? ?? ??? ?? ? ??? ????? ???????.
Fotolia? ?? ???
???? ??? ?? ??? ??? ????? ? ?? ?? ???? ????. ??? ??? ????? ?? ???? ??? ????. ??? ?????? ??? ??????. ?? ?? ? ?? ????? ?? ??? ????. ??? ? ??? ???? ?? ? ??? ??? ????. ??? ???? ???? ?? ? ?? ? ??? ? ?????. ?? ?? ??? ???? ?? ??? ?? ????? ? ????. ??? ??? ???? ??? ?????? ??? ??? ???? ? ?? ???? ?? ? ? ???? : ?? ????? ??? ??. ?? ????? ?? V X V? 2D ?????. ??? v? ???? ?? ????. ?? I? J ??? ??????? ??, ? I? ? j? ???? ?? 1????. ??? ??? 0????. ??? ??? ?? ? ??? ?????. ??? ???? ??? ???? ??? ??? ? ??? ??? ????? ???? ?? ??? ?????.
??? ??? ??? ??? ?????? ??? ??? ?? ??? ??????. ??? ???? ????? ? ?? ?? ??? ?? ??? ??????? ??????. ?? ???? ?? ??? ?? ?? ????? ?? ? ????. ??? ???? ?? ?? ?? ????? ???? ??? ??????. ?? ???? ? ???? ???? ?????. ?? ? ??? (?? digraph)?? ????? ????? ????. ????? ? ???? ?? ???? ?? ???
???? ??? ??? ??? ?? ???? ?????. ??? ?? ?????? ??? ??? ??? ???? ? ?????. ? ???? ???? ? ???? ???? ?? ??? ?????. ???? ??? ????? ???? ? ?? ??? ??? ??? ????. ????? ???? ????? ????? ???? ? ?????. ??? ??? ? ?? ??????? ?????.
? ?? ?? ??? ???? ???? : ?? ?? ?? (DFS)? ?? ? ??? ????. (BFS). DFS? ? ?? ?? ? ??? ?? ??? ? ?? ?????. ?? ??? ??? ?????. BFS? ?? ??? ?? ?? ?? ??? ?? ??? ?????. ? ??? ??? ?????. Java??? ?? ?? ???? ?? ??? ???? ???? ??? ? ????. ?? ?? ? ?? ???? ? ?? ??? ??? ???? ?? ?? ?????.
?? ??? ? ??????
???? ???? ??? ????. ??? ???? ???? ??? ?? ?? ??? ??. ???? ??? ?????? ???? ??? ? ?? ? ?? ?? ??????. ~? ?? ??? ????? ?????
? ??? PHP ??? | PHP ???? ??? ?? : ???? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











TOSECURELYHANDLEAUSTENCENDACTIONANDACTERIZINGINPHP, FORCUCTSESTEPS : 1. ALWAYSHASHPASSWORTHPASSWORD_HASH () ? VERVERIFYUSINGPANSWORD_VERIFY (), usePREPAREDSTATEMENTSTOPREVENTSQLINGERGED, andSTOREUSERSESSEATAIN $ _SESSIONSAFTERLOGIN.2.impleplempletrole ?? ACCESSC

PHP?? ?? ???? ???? ????? ??? ?? ??? ???? ?? ??? ??? ??? ???? ????. 1. finfo_file ()? ???? ?? ?? ??? ???? ???/jpeg? ?? ?? ?? ? ?????. 2. uniqid ()? ???? ??? ?? ??? ???? ? Web ?? ????? ??????. 3. php.ini ? html ??? ?? ?? ??? ???? ???? ??? 0755? ?????. 4. Clamav? ???? ???? ???? ??? ??????. ??? ??? ?? ???? ????? ???? ?? ??? ????? ???? ??? ? ??? ?????.

PHP?? ==? ==? ?? ???? ?? ??? ??????. == ?? ??? ?? ?? ?????. ?? ??, 5 == "5"? true? ????, ?? ??? ???? ?? ?? ??? ????? ????? (? : 5 === "5"? false? ?????. ?? ?????? ===? ? ???? ?? ?????? == ?? ??? ??? ???? ?????.

PHP?? ?? ??? ??? ???? ??? ??? ????. 1. ?? ??? ?? ? ?? ??? ??? ???? ???? ??? ? ????. ??? ??? ???? ????? ????? ???? ????. 2. ?? ?? ?? - ??, ??? ???? ?? ??? ?????. 3. ?? ???? ??? ??? ???? ??? ??? ?????. 4. Division? / ??? ???? 0?? ??? ?? ????? ??? ?? ??? ?? ? ? ????. 5. ???? ??? ???? ?? ?? ? ?? ??? ???? ? ??? ? ???, ??? ?? ? ? ??? ??? ???? ?????. ? ???? ???? ???? ??? ??? ??? ???? ?? ??? ? ??????? ????.

?, PHP? ?? ?? ?? ?????? ?? MongoDB ? Redis? ?? NOSQL ??????? ?? ??? ? ????. ?? MongoDBPHP ???? (PECL ?? Composer? ?? ??)? ???? ????? ????? ??? ?????? ? ???? ????? ??, ??, ?? ? ?? ??? ?????. ??, Predis ????? ?? Phpredis ??? ???? Redis? ???? ?? ? ?? ? ??? ???? ??? ????? Phpredis? ???? ?? Predis? ?? ??? ?????. ? ? ?? ??? ???? ? ????? ????.

tostaycurrentwithphpdevelopments ? bestpractices, followkeynewssources lifephp.netandphpweekly, adgytwithcommunitiesonforumsandconferences, readlingupdated andgrad indewfeatures, andreadorcontributetoopensourceproceprosts.first

phpbecamepupularforwebdevelopmentduetoiteofleneflening, whithhtml, wididepreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsformslikewordpress.itexcelsinhandlingformsubmissions, managingussess, interptisussivers, ?? ???

TOSETTHERIGHTTIMEZONEINPHP, usedate_default_timezone_set () functionattStartOfyourscriptwitHavalidInlifiersuchas'America/new_york'.1.edate_default_timezone_set () beforeanydate/timeFunctions.2
