php


Creating folders based on posted hashtags PHP


So this is my first time posting a question on this website and as a programmer I'm ashamed I didn't create an account sooner, this website has gotten me through a lot lol, anyways enough about that, I need some help.
I am creating a system where users can post their own little statuses, update their status, share, etc. I need help creating folders for #hashtags based on the hashtag the user has in his posted status.
So an example would be: "Hello world #firstpost #helloworld", the code would have to exclude everything in that sentence except for any and all hashtags, and it would then create the folders for all the hashtags that are in the users post, in this case it's going to create the folders firstpost and helloworld (if they don't already exist).
Can I create the folders using a modified version of this or at least something better/similar/related?
$foldername = $_POST["status_posting"];
mkdir('../hashtag/' . $foldername, 0755);
for ($i = 0; $i < 1; $i++) {
mkdir('../users/' . $foldername, 0755);
}
Thank you for your guys help in advance.
You can use a regular expression to capture the hashtags, then use mkdir() to create the directories. You can use file_exists() to check if a file exists (or not !).
I would use the following expression: #(\S{1,}). This expression looks for a #, then starts capturing any non white-space character (/S), from once to infinite times ({1,}).
<?php
$input = "Hello world #firstpost #helloworld";
preg_match_all("/#(\S{1,})/", $input, $matches);
foreach($matches[1] as $match){
if (!file_exists('../hashtag/' . $match)) {
mkdir('../hashtag/' . $match, 0755, true);
}
}
I'd php explode() the message, check each item if it contains a #, if so mkdir the item's name minus the #. Possibly not the most efficient way to do it.
$foldername = explode(" ", $_POST["status_posting"]);
foreach($foldername as $string){
if(strpos($string, '#') !== FALSE){
//Make dir!
mkdir('../hashtag/' . ltrim($string, "#"), 0755, true);
}
}
The true at the end of mkdir allows for recursive file path creation. For instance, if the hashtag folder has not been created yet, it will create that too.
After doing some research, since "#" can be found without using regex, it's much more efficient to use strpos() and explode(). preg_match() vs strpos() speed is shown below.
no. strings 1 2 3 10 100 1000 10000
strpos() 0.01 ms 0.02 ms 0.04 ms 0.2 ms 0.9 ms 2.6 ms 25.6 ms
preg_match() 0.2 ms 0.2 ms 0.3 ms 0.47 ms 0.95 ms 7.4 ms 72.2 ms
Though you do have to factor in explode() time, the php forum states that explode() should be used when regex power is not required, for reasons we can see above. I would be interested in seeing the two answers code put head to head as it would be quite interesting to know for sure.

Related Links

Use array data in highcharts
preg_match with php Compilation failed
Select variable with the highest value [closed]
MySQL insert statement syntax error
Render js template through php using mustache
Extract a string of numbers and symbols with regular expression with using php preg_match [duplicate]
Querying the database with double or check in AND check
How do i update object using php-sdk? (The parameter object is required)
flot chart with json data is empty
suhosin patch dedicated file log
how to redirect to mobile site while still leaving the option open to view desktop version
Why would Laravel Sessions fail in just Safari and IE after switching server?
My image wont display on my landing page rather, it will show the name of the image
trouble with jquery and session var
Adding checkboxes to PHP POST email form
php Active Directory lookup

Categories

HOME
qt
visual-studio
firebase
memory
kendo-dropdown
paypal-ipn
applescript
redmine
selenium-builder
devexpress
mousemove
tcsh
kivy
dafny
embedded-resource
visual-studio-2010
nsis
cryptography
liferay-7
swift2
material-components
stored-procedures
sharepoint-online
driver
alljoyn
mailmerge
xbox360
google-cloud-logging
asciimath
android-contacts
string-formatting
cmake-gui
amazon-mws
spyder
gitkraken
akka-persistence
webviewclient
python-imageio
adapter
ibm-connections
mdns
commonsware-cwac
series
osx-lion
serversocket
des
numerics
redgate
code-rally
nanogallery
1wire
latexml
zend-form
adblock
.net-micro-framework
rm
android-5.0-lollipop
supertest
comm
extjs4.1
sigsegv
exc-bad-access
android-mediarecorder
pen
stateless-session-bean
mpmovieplayercontroller
fitbit
pbx
metabase
tsqlt
cdo.message
unsigned
apache-pig-grunt
odp.net-managed
django-redis
wepay
phpquery
decidable
http.client
replicaset
ocmockito
camus
signed
python-c-extension
ildasm
libgcc
communicate
rpg
webaii
jack
cpu-time
jquery-transit
tridion-2011
multiple-dispatch
towers-of-hanoi
workflow-manager-1.x
border-box
viewpagerindicator
quartz-core
glx
multidrop-bus
play2-mini
canonicalization
printqueue
self-tracking-entities
efs

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App