الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اسحب بيانات من موقع اخر وانزلها بموقعي؟

بدأه warning في 7 يناير 2010 · 23 رد · 1,692 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

فيه موقع في جدول .. مكون من 5 اعمده وعشرين صف مثلاً .. اريد ان اسحب هذا الجدول في موقعي واتحكم به مثلاً اعرض عمودين وخمسة صفوف ...

ارجو المساعده

#2

بسم الله الرحمن الرحيم. السلام عليكم ورحمة الله وبركاته.

لم افهم ما ترمي اليه, لكن في حال توفرك على معلومات الربط/الاتصال بقاعدة بيانات الموقع, يمكنك عمل ذلك بكل يسر

تم تعديل هذه المشاركة بواسطة ottoayoub في 7 يناير 2010 في 19:15

#3
ottoayoub كتب:

بسم الله الرحمن الرحيم. السلام عليكم ورحمة الله وبركاته.

لم افهم ما ترمي اليه, لكن في حال توفرك على معلومات الربط/الاتصال بقاعدة بيانات الموقع, يمكنك عمل ذلك بكل يسر

اخي الكريم

لنفرض ان لدي 4 مواقع

مقسومة الى

منتدى phpbb

صفحة موقع بسكريبت vivvo

ووووو

كيف لي ان اضع صفحة رئيسية لهذه المواقع واجعلها تظهر خلال صفحة واحدة

#4

عن طريق Frame: مثال

#5

لم اقصد الفريم اخي الكريم

ما قصدته هو استدعاء شيئ معين من قاعدة بيانات

مثلا

الفيفو

احاول ان اجلب منها اخر خمس اخبار واعرضه في صفحة رئيسية

ومعلومات الاتصال متوفرة

هل من حل ؟

#6

السلام عليكم و رحمة الله و بركاته

بإمكانك إستخدام الدالة file_get_contents في PHP بهذه الطريقة ثم إبحث في شفرة الصفحة عن حدود الجدول لتتمكن من أخذ الجزء الذي تريده فقط.

$section = file_get_contents('http://YOURURL.DOM/');

$Tag1="Your tage\"100%\">";
$Tag2="</table>";
$MyArray=explode($Tag1,$section);

الحل الثاني بإستخدام Perl لجلب الصفحة ثم البحث داخلها كما شرحت مسبقا

sub download()
{
  use LWP::Simple; 
  $url = get 'http://www.YourURL'; 
  open($Site_Content, ">temp.txt"); 
  print ($Site_Content $url);
  close($Site_Content);
}

هكذا تستدعي السكريبت Perl في PHP

$result=passthru("perl downloader.pl");
1
#7

اشكرك جزيل الشكر اخي الكريم بن العيد على اهتمامك بالموضوع

بالنسبة لي استخدمت خاصة الاستعلام من قاعدة بيانات

بالامر التالي :

انشأت ملف index.php يحتوي على

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US" dir="rtl">
<head>
	<title>My HomePage</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>

<body>
<?

include("config.php");

$SQL = MYSQL_QUERY(" SELECT * FROM Articles ORDER BY ID DESC ") OR DIE (MYSQL_ERROR());
WHILE ($row = MYSQL_FETCH_ARRAY($SQL))
{
ECHO $row[title] ."<br>";
}

?>

</body>

</html>

وملف اتصال بالمجلة config.php يحتوي على :

<?php

$db_host     =  'localhost';
$db_user        = 'userdb';
$db_pass     = '2w3e2erc';
$db_name     = 'dbname';

$link = MYSQL_CONNECT($db_host,$db_user,$db_pass) OR DIE (MYSQL_ERROR());
IF($link) {
MYSQL_SELECT_DB($db_name) OR DIE (MYSQL_ERROR());
}
?>

حيث انني استدعيت الجدول Articles ثم طلبت عرض العناوين

المشاكل :

1 - يعرض كل العناوين !! وانا اريد فقط اظهار خمس عناوين

2 - العناوين تكون مشفرة على شكل استفهامات ؟؟؟؟؟ مع انني حاولت ان اغير الـ charset ولكن بدون جدوى

3 - يظهر العناوين بدون لينك مما لا يتيح للزائر الذهاب لقراءة كامل المقالة

استميحكم عذرا على الاطالة ولكنني طالب مبتدأ وعشقي للبرمجة يجعلني ان اسأل الكثير

تم تعديل هذه المشاركة بواسطة سفير الشمال في 10 يناير 2010 في 01:32

#8

هل تقصد خدمة ال rss ؟؟؟؟

#9

تم اصلاح مشكلة التشفير باضافة

mysql_query("SET NAMES 'cp1256'"); في الملف Index.php

انتظر حل البقية

ottoayoub كتب:

هل تقصد خدمة ال rss ؟؟؟؟

لا اقصد بالضبط خدمة الـ rss

ولكن هدفي هو

ان لدي مثلا

مجلة نيوك

مجلة جوملا

مجلة فيفو

منتدى

وووو

اريد ان اكون صفحة رئيسية اجلب من كل مجلة اخر خمس اخبار واعرضها لدي في صفحة خاصة

#10

لعرض 5 عناوين فقط، أضف limit لأمر sql :

$sql = "Select * from Articles limit 0,5";

ليتم نقل المتغير إلى صفح أخرى:


echo "<a href='articles.php'?title=".$article['title']."'>;
⎬
 while($article = mysql_fetch_assoc($sql))⎨

#11

كل الشكر اخي الكريم

:)

اخي الكريم بالنسبة لاظهار خمس مقالات

تم الاصلاح بفضلك :)

بالنسبة للينك

اخي الكرريم انا اردت ان تتحول الخمس عناوين الى لينك شغال

مثال

hxxp://kiwan.net/homepagenew/

هنا المشكلة انها بدون لينك الى المصدر

#12
اقتباس

لعرض 5 عناوين فقط، أضف limit لأمر sql :

$sql = "Select * from Articles limit 0,5";

ليتم نقل المتغير إلى صفح أخرى:


echo "<a href='articles.php'?title=".$article['title']."'>;
⎬
 while($article = mysql_fetch_assoc($sql))⎨

عليك بتمرير المتغير

 $article['title']

من هده الصفحة إلى صفحة الموقع الدي يضم ARTICLES.

أفترض أنه لديك سكريبت SearchArticles.php تستخدمه لعرض مقالاتك، حيث يظهر لك في خاصية البحث في شريط url

 SearchArticles.php?title='yourTitle'

يكفيك فقط تمرير

 $article['title']

التي حصلنا عليها من قبل في السكريبت الأول المرفق في ردي، وبهدا يكون الكود النهائي:


while($article = mysql_fetch_assoc($sql))⎨
echo "<a href='SearchArticles.php?title=".$article['title']."'>";
⎬

تدكر أنني أفترض بوجود سكريبت SearchArticles.php على مجلتي ُيَمكنني من البحث على كل المقالات داخل المجلة، و بالتالي قمت بتمرير متغيري

 $article['title']

لأتمكن من استخدام خاصية البحث انطلاقا من موقع آخر أو صفحة أخرى

تم تعديل هذه المشاركة بواسطة ottoayoub في 11 يناير 2010 في 01:43

#13

كل الشكر اخي الكريم

جاري تطبيق الاوامر بما يناسب نوعية السكريبت

الله يعطيك العافية

#14
<?


include_once("config.php");

mysql_query("SET NAMES 'cp1256'");

$SQL = MYSQL_QUERY(" SELECT * FROM phpbb_topics limit 5 ") OR DIE (MYSQL_ERROR());
WHILE ($topics = MYSQL_FETCH_ARRAY($SQL))
{
echo "<a href='viewtopic.php'?title=".$topics['topic_title']."'>;
}
?>

اخي الكريم تطبقت على منتدى phpbb

الخطأ الذي يظهر

اقتباس
Parse error: syntax error, unexpected $end

ملاحظة

viewtopic.php?f=27&t=9889

هذه هي طريقة العرض

f = القسم

t = الموضوع

كيف لي ان اضمها

تم تعديل هذه المشاركة بواسطة سفير الشمال في 12 يناير 2010 في 16:19

#15
سفير الشمال كتب:

<?


include_once("config.php");

mysql_query("SET NAMES 'cp1256'");

$SQL = MYSQL_QUERY(" SELECT * FROM phpbb_topics limit 5 ") OR DIE (MYSQL_ERROR());
WHILE ($topics = MYSQL_FETCH_ARRAY($SQL))
{
echo "<a href='viewtopic.php'?title=".$topics['topic_title']."'>;
}
?>

اخي الكريم تطبقت على منتدى phpbb

الخطأ الذي يظهر

ملاحظة

viewtopic.php?f=27&t=9889

هذه هي طريقة العرض

f = القسم

t = الموضوع

كيف لي ان اضمها

بسم الله الرحمن الرحيم.

بالنسبة لمشكلة

 Parse error: syntax error, unexpected $end

أضن أنه ينقصك ( ; ) أو () فقط إبحث في مكان الخطأ. ينقصك " بعد echo

 echo "<a href='viewtopic.php'?title=".$topics['topic_title']."'>";

بالنسبة لخاصية البحث، و بما أنه يقوم بالبحث داخل القسم forum و الموضوع topic فسيتحول السكريبت السابق إلى:


$sql = mysql_query("Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topics, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.forum_id = phpbb_forums.forum_id limit 0,5") or die (mysql_error("Error in your sql request: ".$sql));
while($topics = mysql_fetch_assoc($sql))
{
$forum = $topics['forum_id'];
$topic = $topics['topic'];
echo "<a href='viewtopic.php?f=".$forum."&t=".$topic."'>";
}
?>
 <?php

أخبرني بالنتيجة من فضلك و شكرا لك.

تم تعديل هذه المشاركة بواسطة ottoayoub في 12 يناير 2010 في 18:29

#16

اسف لانشغالي وعدم ردي ..

اخي سفير الشمال ... موضوعي مختلف تماماً عن موضوعك .. اتمنى ان تضع استفسارك في موضوع آخر ..

اخي بن عيد ..شكراً لك اخي وردك جميل .. ولكني مبتدأ للغايه لذا اتمنى ان توضح لي المزيد بمثال اوضح بالنسبه للحل الاول .. واتمنى ان يكون مثال حي لأي موقع تختاره

جعله الله في ميزان حسناتك

تم تعديل هذه المشاركة بواسطة warning في 13 يناير 2010 في 00:18

#17

بداية اشكر الاخ ottoayoub عى ما يبذله من جهد في هذا الموضوع

قمت بالتجربة

اقتباس
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource

في السطر

$sql = mysql_query("Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topics, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.forum_id = phpbb_forums.forum_id limit 0,5") or die (mysql_error("Error in your sql request: ".$sql));

اما عن الاخ warning

باعتقادي ان بيانات موقع اخر هي نفس الطريقة التي ناقشناه

فتحتاج الى بيانات الموقع الاخر

واذا كنت مخطأ

فان اسف كتير على ما بدر مني من تحويل الموضوع من جهة الى اخرى

تم تعديل هذه المشاركة بواسطة سفير الشمال في 14 يناير 2010 في 01:33

#18

بسم الله الرحمن الرحيم المشكلة في أمر sql لأنه لا أعلم ماهية قاعدة بيانات phpbb فالأمر الدي وضعته ليس إلا مثال بسيط. فقط ضع الأمر الخاص بك و أطلعني بالنتيجة أو ضع بيانات الربط بقاعدة بياناتك لأقوم بإصلاح الأمر إن شاء اللهو شكرا لك

#19

تم اصلاح الخطأ

ولكن الصفحة بيضاء !!!

هذا الكود المعدل طبق القاعدة

$sql = mysql_query("Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topic_title, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.topic_id = phpbb_forums.forum_id limit 0,5") or die (mysql_error("Error in your sql request: ".$sql));

تم تعديل هذه المشاركة بواسطة سفير الشمال في 14 يناير 2010 في 16:38

#20

صفحة بيضاء يعني أنه هناك خللخ بالسكريبت, هل من الممكن وضعه أو رفعه بالكامل لأطلع عليه و شكرا.

#21

هذا هو السكريبت بالكامل

<html dir="rtl">
<head>
<TITLE>home page</TITLE>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="content-type" content="text/html; charset=windows-1256" />
<META NAME="DESCRIPTION" CONTENT="my new home page">
<META NAME="DISTRIBUTION" CONTENT="GLOBAL">
<META NAME="REVISIT-AFTER" CONTENT="1 Days">
<META NAME="RATING" CONTENT="general">
</head>
<body>
<?php 

include_once("config.php");

mysql_query("SET NAMES 'cp1256'");

$sql = mysql_query("Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topic_title, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.topic_id = phpbb_forums.forum_id limit 0,5") or die (mysql_error("Error in your sql request: ".$sql));
while($topics = mysql_fetch_assoc($sql))
{
$forum = $topics['forum_id'];
 $topic = $topics['topic_id'];
 echo "<a href='viewtopic.php?f=".$forum."&t=".$topic."'>"; 
}
?> 

</body>
</html>
#22

بسم الله الرحمن الرحيم. السلام عليكم ورحمة الله وبركاته. يسعدني أن ابشرك بعدم تواجد اي خلل بالسكريبت فقد قمت بتجريبه على منتدى phpbb لصديق لي و في ما يلي الكود الذي جربته:


<?php

mysql_query("SET NAMES 'cp1256'");

$sql = "Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topic_title, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.forum_id = phpbb_forums.forum_id limit 0,5";

$result = mysql_query($sql) or die ("Error in your sql request: ".$sql.mysql_error());

while($topics = mysql_fetch_assoc($result)){

$forum = $topics['forum_id'];
$topic_id = $topics['topic_id'];
$topic_title = $topics['topic_title'];

echo "<table border='0'><tr><td><a href='viewtopic.php?f=".$forum."&t=".$topic_id."'>".$topic_title."</td></tr></table>";
}
?>

تم تعديل هذه المشاركة بواسطة ottoayoub في 15 يناير 2010 في 04:29

#23

اشكرك جزيل الشكر اخي الكريم

وصلنا للحل

الا انني اريد ان انوه للفائدة

انني غيرت قليلا في الكود , والاسباب

<html dir="rtl">
<head>
<TITLE>home page</TITLE>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="content-type" content="text/html; charset=windows-1256" />
<META NAME="DESCRIPTION" CONTENT="my new home page">
<META NAME="DISTRIBUTION" CONTENT="GLOBAL">
<META NAME="REVISIT-AFTER" CONTENT="1 Days">
<META NAME="RATING" CONTENT="general">
</head>
<body>
<?php 

include_once("config.php");


mysql_query("SET NAMES 'cp1256'");

$sql = "Select phpbb_topics.topic_id, phpbb_topics.forum_id, phpbb_topics.topic_title, phpbb_forums.forum_id from phpbb_topics, phpbb_forums where phpbb_topics.forum_id = phpbb_forums.forum_id ORDER BY topic_first_post_id DESC limit 0,5";

$result = mysql_query($sql) or die ("Error in your sql request: ".$sql.mysql_error());

while($topics = mysql_fetch_assoc($result)){

$forum = $topics['forum_id'];
$topic_id = $topics['topic_id'];
$topic_title = $topics['topic_title'];

 echo "<table border='0'><tr><td><a href='http://yourdomain.com/forums/viewtopic.php?f=".$forum."&t=".$topic_id."'>".$topic_title."</td></tr></table>";
 }
?>
</body>
</html>

حيث انني اضفت

ORDER BY topic_first_post_id DESC

لاظهار اخر خمس مواضيع :)

والاخر

 echo "<table border='0'><tr><td><a href='http://yourdomain.com/forums/viewtopic.php?f=".$forum."&t=".$topic_id."'>".$topic_title."</td></tr>

للذهاب الى رابط المنتدى

حيث انه قبل كان ياخذ مجلد الموجود في هذا السكريبت !

اشكرك من كل قلبي على وقفتك الشجاعة

لن انسى معروفك اخي الكريم

الله يحفظك

تم تعديل هذه المشاركة بواسطة سفير الشمال في 15 يناير 2010 في 04:57

#24

الحمد لله رب العالمين.

1

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…