הפונקציה curl_setopt() מאפשרת לקבוע את האפשרויות של CURL session המזוהה על ידי הפרמטר ch. option היא האופציה אותה ניתן לקבוע, וה value הוא הערך של האופציה שניתנה על ידי option.
ה value צריך להיות מסוג long עבור הפשרויות הבאות (מצוינות במשתנה option):
CURLOPT_INFILESIZE: כאשר מעלים קובץ לאתר מרוחק, יש להשתמש באופציה זו על מנת להגיד ל PHP מהו הגודל המצופה מן הקובץ המועלה להיות.
CURLOPT_VERBOSE: קבע את הערך לערך השונה מאפס אם יש לאפשר ל CURL לדווח על כל אשר קורה.
CURLOPT_HEADER: קבע את הערך לערך השונה מאפס אם יש לאפשר ל header להכלל במידע הנשלח.
CURLOPT_NOPROGRESS: קבע את הערך לערך השונה מאפס אם אין אתם רוצים ש PHP תציג progress meter עבור CURL transfers
הערה: PHP קובעת באופן אוטומטי את הערך לערך השונה מאפס, יש לשנות ערך זה למטרות debugging בלבד.
CURLOPT_NOBODY: קבע את הערך לערך השונה מאפס אם יש לאפשר ל body להכלל במידע הנשלח.
CURLOPT_FAILONERROR: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תכשל באופן שקט,ללא הודעות שגיאה, אם הקוד המוחזר על ידי ה HTTP גדול מ300. ברירת המחדל היא להחזיר את הדף באופן רגיל תוך כדי התעלמות מן הקוד.
CURLOPT_UPLOAD: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תתכונן להעלאת קבצים.
CURLOPT_POST: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תבצע HTTP POST רגיל. POST רגיל זה הוא מסוג application/x-www-form-urlencoded, הנפוץ בשימוש על ידי HTML forms.
CURLOPT_FTPLISTONLY: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תציג רק את שמות ספריית ה FTP.
CURLOPT_FTPAPPEND: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תוסיף את תוכן הקובץ לקובץ הקיים במקום להחליפו.
CURLOPT_NETRC: קבע את הערך לערך השונה מאפס אם ברצונך ש PHP תסרוק את קובץ ~./netrc כדי למצוא את שם המשתמש והסיסמה עבור האתר המרוחק אליו מתבצע ניסיון להתחברות.
CURLOPT_FOLLOWLOCATION: קבע את הערך לערך השונה מאפס אם ברצונך לעקוב אחר כל "Location: " header שהשרת שולח כחלק מה HTTP header (המעקב הינו רקורסיבי, ו PHP תעקוב אחר כל "Location: " headers שישלחו.).
CURLOPT_PUT: קבע את הערך לערך השונה מאפס כדי לבצע HTTP PUT לקובץ. הקובץ המועבר ל PUT חייב להקבע תוך כדי שימוש ב CURLOPT_INFILE ו CURLOPT_INFILESIZE.
CURLOPT_MUTE: קבע את הערך לערך השונה מאפס כדי ש PHP תהיה שקטה לגמרי לגבי פונקציות CURL.
CURLOPT_TIMEOUT: העבר ערך מסוג long כפרמטר שמכיל את הזמן המקסימלי, בשניות, שאותו תרשה לפונקציות CURL להתבצע.
CURLOPT_LOW_SPEED_LIMIT: העבר ערך מסוג long כפרמטר שמכיל את מהירות ההעברה בבתים לשניה שמהירות ההעברה צריכה להיות מתחת CURLOPT_LOW_SPEED_TIME שניות על מנת ש PHP תתיחס למהירות כנמוכה מדי ותבטל את ההעברה.
CURLOPT_LOW_SPEED_TIME: העבר ערך מסוג long כפרמטר שמכיל את הזמן בשניות שההעברה צריכה להיות מתחת ל CURLOPT_LOW_SPEED_LIMIT כדי ש PHP תתיחס לפעולה כאיטית מדי ותבטל את ההעברה.
CURLOPT_RESUME_FROM: העבר ערך מסוג long כפרמטר שמכיל את ה offset, בבתים, שההעברה תתחיל ממנה.
CURLOPT_SSLVERSION: העבר ערך מסוג long כפרמטר שמכיל את גירסת ה SSL(2 or 3) לשימוש. כברירת מחדל PHP תנסה למצוא נתון זה בעצמה, אך במקרים מסוימים יש לקבוע ערך זו ידנית.
CURLOPT_SSL_VERIFYHOST: העבר ערך מסוג long אם cURL אמורה לוודא את ה peer certificate הנמצא בשימוש עם SSL handshake. הערך 1 קובע שיש לבדוק את המצאותו של common name, הערך 2 קובע שיש לוודא כי היא זהה לשם המחשב המארח.
CURLOPT_TIMECONDITION: העבר ערך מסוג long כפרמטר הקובע כיצד יש להתיחס ל CURLOPT_TIMEVALUE. ניתן לקבוע את הערך ל TIMECOND_IFMODSINCE או ל TIMECOND_ISUNMODSINCE. זהו HTTP-only feature.
CURLOPT_TIMEVALUE: העבר ערך מסוג long כפרמטר שהוא הזמן בשניות מאז January 1st, 1970. היחס לזמן זה יהיה כפי שהוגדר באפשרות CURLOPT_TIMEVALUE , או על פי ברירת המחדל TIMECOND_IFMODSINCE.
CURLOPT_RETURNTRANSFER: העבר ערך השונה מאפס אם על cURL להחזיר את המידע ישירות במקום לבצע הדפסה של המידע.
המשתנה value צריך להיות מסוג string בשביל הערכים הבאים של המשתנה option :
CURLOPT_URL: זהו ה URL שברצונך ש PHP תביא. ניתן לקבוע את הערך גם בזמן אתחול session עם פונקציית curl_init() .
CURLOPT_USERPWD: העבר ערך מסוג מחרוזת בפורמט [username]:[password] , כדי ש PHP תשתמש בו עבור ההתחברות.
CURLOPT_PROXYUSERPWD: העבר ערך מסוג מחרוזת בפורמט [username]:[password] , להתחברות ל HTTP proxy.
CURLOPT_RANGE: העבר את התחום המבוקש. הפורמט צריך להיות "X-Y" , כאשר X או Y יכולים להיות ריקים. העברת HTTP תומכת גם במספר פרקי זמן, מופרדים בפסיק כגון : X-Y,N-M.
CURLOPT_POSTFIELDS: העבר ערך מסוג מחרוזת המכיל את מלוא המידע שיש לשלוח בפעולת HTTP "POST" .
CURLOPT_REFERER: העבר ערך מסוג מחרוזת המכיל את ה "referer" header לשימוש ב HTTP request.
CURLOPT_USERAGENT: העבר ערך מסוג מחרוזת המכיל את ה "user-agent" header לשימוש ב HTTP request.
CURLOPT_FTPPORT: העבר ערך מסוג מחרוזת המציין כיצד יש להשיג את כתובת ה IP שתשמש את ה ftp עבור "POST". ההוראה POST מציינת לשרת המרוחק להתחבר לכתובת ה IP המצוינת. הערך יכול להיות כתובת IP רגילה, שם מחשב מארח, a network interface name (under UNIX), או '-' כדי לציין את כתובת ה IP שהיא ברירת המחדל של המערכת.
CURLOPT_COOKIE: העבר ערך מסוג מחרוזת המכיל את תוכן ה cookie שתשלח ב HTTP header.
CURLOPT_SSLCERT: העבר ערך מסוג מחרוזת המכיל את שם קובץ ה PEM formatted certificate.
CURLOPT_SSLCERTPASSWD: העבר ערך מסוג מחרוזת המכיל את הסיסמה הנדרשת כדי להשתמש ב CURLOPT_SSLCERT certificate.
CURLOPT_COOKIEFILE: העבר ערך מסוג מחרוזת המכיל את שם הקובץ המכיל את תוכן ה cookie. קובץ ה cookie יכול להיות בפורמט Netscapeת או ב HTTP-style headers רגילים שנשמרו בקובץ.
CURLOPT_CUSTOMREQUEST: העבר ערך מסוג מחרוזת לשימוש במקום GET או HEAD כאשר מבצעים פעולת HTTP request. אפשרות זו שימושית כאשר מבצעים DELETE או כל פעולה אחרת מסוג HTTP request . ערכים אפשריים הם ערכים כגון GET, POST, וכך הלאה; שים לב: אין להעביר שורת HTTP request מלאה כאן. לדוגמא, העברת 'GET /index.html HTTP/1.0\r\n\r\n' תהיה לא נכונה.
הערה: אין לבצע פעולה זו לפני שמוודאים כי השרת אכן תומך בפקודה.
CURLOPT_PROXY: ציין את שם ה HTTP proxy שהבקשות יועברו דרכו.
CURLOPT_INTERFACE: ציין את שם ה network interface היוצא שיש להשתמש בו. הערך יכול להיות שם interface ,כתובת IP או שם מחשב מארח.
CURLOPT_KRB4LEVEL: העבר את רמת האבטחה KRB4 (Kerberos 4). הערך יכול להיות כל אחד מהערכים הבאים (מהחלשה מבין האפשרויות, לחזקה מביניהם): 'clear', 'safe', 'confidential', 'private'. אם הערך אינו תואם את אחד מהערכים האילו , אזי 'private' תהיה בשימוש. אם הערך נקבע ל NULL, אבטחת KRB4 תהיה מנוטרלת. אבטחת KRB4 עובדת כרגע רק עם העברות FTP .
CURLOPT_HTTPHEADER: העבר מערך שלשדות ה HTTP header שאותם ברצונך לקבוע.
CURLOPT_QUOTE: העבר מערך של פקודות FTP שיש לצע על השרת המרוחק לפני ביצוע בקשת ה FTP.
CURLOPT_POSTQUOTE: העבר מערך של פקודות FTP שיש לצע על השרת המרוחק אחרי ביצוע בקשת ה FTP.
האפשרויות הבאות מצפות ל file descriptor שהושג תוך שימוש בפונקציית fopen() :
CURLOPT_FILE: הקובץ אליו הפלט של ההעברה ינותב, ברירת המחדל היא STDOUT.
CURLOPT_INFILE: הקובץ ממנו הקלט של ההעברה מגיע.
CURLOPT_WRITEHEADER: הקובץ אליו יש לרשום את חלק ה header של הפלט.
CURLOPT_STDERR: הקובץ אליו יש לרשום את השגיאות במקום stderr.